[DC-791] [PostgreSQL] In case model is build from existing database sequence name is invalid and doctrine throw exception Created: 16/Jul/10 Updated: 25/Aug/10 |
|
| Status: | Open |
| Project: | Doctrine 1 |
| Component/s: | Schema Files |
| Affects Version/s: | 1.2.2 |
| Fix Version/s: | 1.2.4 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Przemysław Ciąćka | Assignee: | Jonathan H. Wage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
symfony 1.4.5, postgresql 8.4, debian lenny, nginx |
||
| Attachments: |
|
| Description |
|
Firstly I created database directly in postgresql. When I try to insert new record to database I received following error: sequence "Category_id_seq" does not exist In schema file sequence name is defined like this: sequence: '"Address_id_seq"' In Category model file is same like above, apostrophes and quotes. When I remove quotes from sequence in model files everything is ok and there're no problems with insert new row to database. |
| Comments |
| Comment by Enrico Stahn [ 13/Aug/10 ] |
|
There are 2 solutions to your problem. The first is to change the sequence name in the schema, the second is to change the doctrine configuration. The default behavior of doctrine is to add a "_seq" to each sequence name. If you remove this part from you sequence name then it sould work as expected. The second option is to change the behavior of doctrine with the following configuration parameter: Doctrine_Manager::getInstance()->setAttribute(Doctrine_Core::ATTR_SEQNAME_FORMAT, '%s'); default: Doctrine_Manager::getInstance()->setAttribute(Doctrine_Core::ATTR_SEQNAME_FORMAT, '%s_seq'); |
| Comment by Przemysław Ciąćka [ 25/Aug/10 ] |
|
Problem are quotes in sequence name. Temporarly I fixed it by add str_replace() into importer from PostgreSQL - now in schema sequence names are without quotes. |