[DDC-1657] The Doctrine cli tool does not handle schema correctly. Created: 19/Feb/12 Updated: 08/Jul/12 Resolved: 08/Jul/12 |
|
| Status: | Resolved |
| Project: | Doctrine 2 - ORM |
| Component/s: | Tools |
| Affects Version/s: | 2.2 |
| Fix Version/s: | 2.3 |
| Security Level: | All |
| Type: | Bug | Priority: | Critical |
| Reporter: | Presteus | Assignee: | Benjamin Eberlei |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Linux Mint Debian Edition, PHP 5.3.10, PostgreSQL 9.1 |
||
| Description |
|
At first time, sorry for my english and I will be short and brief, the problem is clearly explained in the title and the test is very simple. The entity /** * Short description. * * @Entity(repositoryClass="Stonewood\Model\Entity\Repository\Screen") * @Table(name="stonewood.screen") */ class Screen extends Entity { /** * Identifier * @var integer * * @Id * @GeneratedValue(strategy="IDENTITY") * @Column(name="pk", type="integer", nullable=false) */ private $pk; /** * Title * @var string * * @Column(name="title", type="string", length=255, nullable=false) */ private $title; /** * Path * @var string * * @Column(name="path", type="string", length=255, nullable=false) */ private $path; /** * Register date * @var Date * * @Column(name="ddate", type="date", nullable=false) */ private $ddate; /** * Avatar * @var Stonewood\Model\Entity\Avatar * * @ManyToOne(targetEntity="Stonewood\Model\Entity\Avatar") * @JoinColumn(name="pk_avatar", referencedColumnName="pk", nullable=true, onDelete="CASCADE") */ private $avatar; /** * */ public function __construct($pk = null, $title = null, $path = null, $ddate = null, $avatar = null) { $this->setPk($pk); $this->setTitle($title); $this->setPath($path); $this->setDdate($ddate); $this->setAvatar($avatar); } [...] } Before the first deployment ./doctrine orm:schema-tool:update --dump-sql CREATE TABLE stonewood.screen (pk SERIAL NOT NULL, pk_avatar INT DEFAULT NULL, title VARCHAR(255) NOT NULL, path VARCHAR(255) NOT NULL, ddate DATE NOT NULL, PRIMARY KEY(pk)); CREATE INDEX IDX_D91A7FB3E9032144 ON stonewood.screen (pk_avatar); During the first deployement
./doctrine orm:schema-tool:update --force
Updating database schema...
Database schema updated successfully! "100" queries were executed
I test the application and all work correctly After this test ./doctrine orm:schema-tool:update --dump-sql ALTER TABLE screen ADD pk SERIAL NOT NULL; ALTER TABLE screen ADD pk_avatar INT DEFAULT NULL; ALTER TABLE screen ADD title VARCHAR(255) NOT NULL; ALTER TABLE screen ADD path VARCHAR(255) NOT NULL; ALTER TABLE screen ADD ddate DATE NOT NULL; ALTER TABLE screen ADD CONSTRAINT FK_D91A7FB3E9032144 FOREIGN KEY (pk_avatar) REFERENCES stonewood.avatar (pk) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE; CREATE INDEX IDX_D91A7FB3E9032144 ON screen (pk_avatar); ALTER TABLE screen ADD PRIMARY KEY (pk); The result is false. I should see Nothing to update - your database is already in sync with the current entity metadata. |
| Comments |
| Comment by Benjamin Eberlei [ 27/May/12 ] |
|
This issue was partially fixed in DBAL already, however it seems there is still a problem with sequence detection. |
| Comment by Benjamin Eberlei [ 08/Jul/12 ] |
|
Fixed the sequence problem in 2.3, the other schema problems where indeed fixed in 2.2.1 already. |