【发布时间】:2012-03-24 23:18:13
【问题描述】:
问题:
- 我有一个 symfony 项目,其中包含一个充满生产数据的数据库
- 我想更改其结构(添加/删除表格或添加/删除/更改现有字段)
如何在不擦除数据库的情况下做到这一点?
因为当您更改 schema.yml 时,如果您希望在数据库中进行更改,则需要 doctrine build --all,并且此任务会清除数据库,即 生产 数据库。
我尝试过的事情:
This blog 基本上说要做以下事情:
php symfony doctrine:data-dump
php symfony doctrine:build --all
phpsymfony doctrine:data-load data/fixtures/data.yml #default name for fixtures file
但它会打印有关外键约束的错误。 (就我而言,我正在尝试在现有表中添加一个带有外键的表)。
基于相同的想法:我尝试了以下方法:
mysqldump -u root -p > DBexport.sql
php symfony doctrine:build --all
# open DBexport.sql in a text editor and remove all queries for
# creating the structure of the database
mysql -u root -p shop < DBexport_data.sql
但我有这个错误:
第 34 行的错误 1136 (21S01):列计数与值计数不匹配 在第 1 行
因为我在表中添加了一个字段,而旧数据库没有正确的字段计数...
【问题讨论】: