问题:
我如何做到这一点而不删除我的数据库?
因为当您更改schema.yml时,如果希望在数据库中进行更改,则需要doctrine build --all,而此任务将删除数据库,即生产数据库。
我试过的事情:
这个博客主要要求执行以下操作:
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行的值计数不匹配
因为在表中我添加了一个字段,而旧数据库没有正确的字段计数.
发布于 2012-03-25 21:26:15
我可能误解了这个问题,但是迁徙不能解决你的问题吗?
发布于 2012-03-24 23:32:21
我广泛地处理多个symfony项目,其中之一是一个高流量企业SAS (软件作为解决方案)应用程序,我们从未从Symfony一方传播模式更改。实际上,我们通过尝试使用Symfony进行模式更改,意外地从dev数据库删除了一个新的初级dev。
我的建议是手动对模式进行模式更改,然后更新数据模式文件(.yml)以反映模式更改,然后可以运行以下命令来更新模型、筛选和表单文件:
php symfony doctrine:build-model
php symfony doctrine:build-filters
php symfony doctrine:build-forms
php symfony cc确保首先对dev环境进行更改,这样您就可以测试并确保代码工作正常。然后,当您将代码推送到生产环境时,您可以进行架构更改,然后发布代码。如果您正在进行的架构更改不会破坏现有的代码库,我将在代码推送前一两天使它们失效。
https://stackoverflow.com/questions/9856540
复制相似问题