首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用symfony 1.4修改生产数据库的结构

如何用symfony 1.4修改生产数据库的结构
EN

Stack Overflow用户
提问于 2012-03-24 23:18:13
回答 2查看 2.9K关注 0票数 0

问题:

  • 我有一个symfony项目,它的数据库中充满了生产数据。
  • 我想更改它的结构(添加/删除表或添加/删除/更改现有字段)

我如何做到这一点而不删除我的数据库?

因为当您更改schema.yml时,如果希望在数据库中进行更改,则需要doctrine build --all,而此任务将删除数据库,即生产数据库。

我试过的事情:

这个博客主要要求执行以下操作:

代码语言:javascript
复制
php symfony doctrine:data-dump
php symfony doctrine:build --all
phpsymfony doctrine:data-load data/fixtures/data.yml #default name for fixtures file

但是它打印了一个关于外键约束的错误。(在我的例子中,我试图在现有的表中添加一个外键表)。

基于同样的想法:我尝试了以下几点:

代码语言:javascript
复制
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行的值计数不匹配

因为在表中我添加了一个字段,而旧数据库没有正确的字段计数.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-25 21:26:15

我可能误解了这个问题,但是迁徙不能解决你的问题吗?

票数 1
EN

Stack Overflow用户

发布于 2012-03-24 23:32:21

我广泛地处理多个symfony项目,其中之一是一个高流量企业SAS (软件作为解决方案)应用程序,我们从未从Symfony一方传播模式更改。实际上,我们通过尝试使用Symfony进行模式更改,意外地从dev数据库删除了一个新的初级dev。

我的建议是手动对模式进行模式更改,然后更新数据模式文件(.yml)以反映模式更改,然后可以运行以下命令来更新模型、筛选和表单文件:

代码语言:javascript
复制
php symfony doctrine:build-model
php symfony doctrine:build-filters
php symfony doctrine:build-forms
php symfony cc

确保首先对dev环境进行更改,这样您就可以测试并确保代码工作正常。然后,当您将代码推送到生产环境时,您可以进行架构更改,然后发布代码。如果您正在进行的架构更改不会破坏现有的代码库,我将在代码推送前一两天使它们失效。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9856540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档