我在Symfony2 proyect中使用postgresql,在Mac中配置Postgis(不确定最后一个是否有任何区别)。
问题是在运行
后验证我的架构doctrine:schema:update --force
将导致此错误:
[Mapping] OK - 映射文件正确。
[数据库]失败 - 数据库架构与当前映射文件不同步。
再次更新时,Doctrine会尝试再次添加所有内容,当然不会。
感谢您的帮助。
修改 app / console --ansi doctrine:schema:update --dump-sql
的结果ALTER T
ABLE actions ADD id VARCHAR(255) NOT NULL;
ALTER TABLE actions ADD display VARCHAR(255) NOT NULL;
ALTER TABLE actions ADD description VARCHAR(255) DEFAULT NULL;
ALTER TABLE actions ADD PRIMARY KEY (id);
-- lots more tables..
ALTER TABLE subclassifications ADD PRIMARY KEY (id);
ALTER TABLE users ADD id INT NOT NULL;
ALTER TABLE users ADD company_id INT DEFAULT NULL;
ALTER TABLE users ADD profile_id INT DEFAULT NULL;
ALTER TABLE users ADD name VARCHAR(255) NOT NULL;
ALTER TABLE users ADD password VARCHAR(255) NOT NULL;
ALTER TABLE users ADD salt VARCHAR(255) NOT NULL;
ALTER TABLE users ADD email VARCHAR(255) NOT NULL;
ALTER TABLE users ADD state INT NOT NULL;
ALTER TABLE users ADD accessCode INT NOT NULL;
ALTER TABLE users ADD CONSTRAINT FK_1483A5E9979B1AD6 FOREIGN KEY (company_id) REFERENCES companies (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE users ADD CONSTRAINT FK_1483A5E9CCFA12B8 FOREIGN KEY (profile_id) REFERENCES profiles (id) ON DELETE SET NULL NOT DEFERRABLE INITIALLY IMMEDIATE;
CREATE INDEX IDX_1483A5E9979B1AD6 ON users (company_id);
CREATE INDEX IDX_1483A5E9CCFA12B8 ON users (profile_id);
ALTER TABLE users ADD PRIMARY KEY (id);
这里的要点是第一次使用相同的转储,但在进行任何更改时,转储应该只是增量更改,而不是完整的数据库。
答案 0 :(得分:1)
这里可能有一些问题。
第一个:你使用的是哪个版本的Doctrine?直到2.3我有同样的事情。更新到2.4修复它。
第二个问题:您的地图中是否有columnDefinition
?如果你拥有它,那就是问题所在。 columnDefinition
打破了可移植性。它还打破了Doctrine Migrations。