我错误地在我的架构中定义了一个名为desc
的列,它是一个保留关键字。我很快意识到自己的错误并更改了架构,将架构列名称修改为description
。
现在,当我运行doctrine:build --all
或doctrine:build-sql
时,它仍然会根据我过去的错误生成sql。
我验证了这一点,因为它仍然在句子中生成带有desc
的sql语句,该语句已被删除。我已经清除了缓存,删除了原始的sql文件,并清除了我的日志。
世界上doctrine:build-sql
如何产生完全删除和删除的错误?我该如何纠正这个问题?
显然,在我能解决之前,doctrine:build
已被破坏。
修改
这是我原来的架构:
ReasonCode:
columns:
id: { type: integer, primary: true, notnull: true, autoincrement: true, unique: true }
desc: { type: string }
RejectionCode:
columns:
id: { type: integer, primary: true, notnull: true, autoincrement: true, unique: true }
desc: { type: string }
ConsiderationCode:
columns:
id: { type: integer, primary: true, notnull: true, autoincrement: true, unique: true }
desc: { type: string }
这是我修改过的架构:
ReasonCode:
columns:
id: { type: integer, primary: true, notnull: true, autoincrement: true, unique: true }
name: { type: string }
RejectionCode:
columns:
id: { type: integer, primary: true, notnull: true, autoincrement: true, unique: true }
name: { type: string }
ConsiderationCode:
columns:
id: { type: integer, primary: true, notnull: true, autoincrement: true, unique: true }
name: { type: string }
这里是每次生成的生成的sql架构:
CREATE TABLE consideration_code (id BIGINT UNIQUE AUTO_INCREMENT, desc TEXT, name TEXT, PRIMARY KEY(id)) ENGINE = INNODB;
CREATE TABLE reason_code (id BIGINT UNIQUE AUTO_INCREMENT, desc TEXT, name TEXT, PRIMARY KEY(id)) ENGINE = INNODB;
CREATE TABLE rejection_code (id BIGINT UNIQUE AUTO_INCREMENT, desc TEXT, name TEXT, PRIMARY KEY(id)) ENGINE = INNODB;
答案 0 :(得分:1)
doctrine:build-sql
根据生成的模型(php类)生成SQL。您需要先使用doctrine:build-model
重新生成模型。
您的desc
中还有其他schema.yml
字段吗?您是否尝试清空文件夹cache
?你能粘贴schema.yml
吗?
desc
字段是否仍在生成的模型中(php文件)?
修改强>
另一个激进的解决方案:
schema.yml
doctrine:clean-model-files
清除所有旧模型schema.yml
(已更正的)doctrine:build --all