gpt4 book ai didi

php - 如何使用 symfony 1.4 修改生产数据库的结构

转载 作者:行者123 更新时间:2023-11-29 06:09:22 25 4
gpt4 key购买 nike

问题:

  • 我有一个 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

但是我有这个错误:

ERROR 1136 (21S01) at line 34: Column count doesn't match value count at row 1

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

最佳答案

我广泛参与了多个 symfony 项目,其中一个是高流量企业 SAS(软件即解决方案)应用程序,并且我们从未从 Symfony 端传播架构更改。实际上,我们有一位新的初级开发人员尝试使用 Symfony 进行架构更改,从而意外地从我们的开发数据库中删除了数据。

我的建议是手动对架构进行架构更改,然后更新数据架构文件 (.yml) 以反射(reflect)架构更改,然后您可以运行以下命令来更新模型、过滤器和表单文件:

php symfony doctrine:build-model
php symfony doctrine:build-filters
php symfony doctrine:build-forms
php symfony cc

请确保首先对开发环境进行更改,以便可以测试并确保代码有效。然后,当您将代码推送到生产环境时,您可以进行架构更改,然后发布代码。如果您所做的架构更改不会破坏现有的代码库,我会在代码推送前一两天进行更改

关于php - 如何使用 symfony 1.4 修改生产数据库的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9856540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com