使用Doctrine / Symfony进行小型架构更新的最佳方法是什么?

时间:2009-11-24 18:15:44

标签: php orm schema symfony1 doctrine

对symfony / doctrine应用程序进行小型架构更新的最佳方法是什么?

我的问题是,我正在开发一个新的项目,偶尔会发现自己在这里添加了一个新专栏,在那里我找到了需要的新专栏。但是,我的数据库已经有了现有数据,我不希望每次运行完整的重建并删除我的数据库。

我也不想写灯具。它们很烦人,使用我的应用程序插入数据并在开发过程中保持它更容易。我也不想写一个迁移来添加一两列,特别是当我这么做的时候。

我唯一的选择是:

  1. 更改架构文件和 每次架构更改后擦除数据库 - 或 -
  2. 更新架构文件 并手动运行alter语句 我的数据库
  3. 最终,我想要做的是对我的数据库进行更改,让symfony找出模式文件应该是什么样子,或者对模式文件进行更改并让symfony找出要进行的新更改到现有的数据库。

    请帮忙!

    感谢。第一次使用SO,迫不及待地想看看我是否得到了回复!

2 个答案:

答案 0 :(得分:3)

看看这篇文章:

Can you generate a migration from an existing table with Doctrine?

和这个链接: http://www.doctrine-project.org/documentation/cookbook/1_0/en/code-igniter-and-doctrine:setup-command-line-interface

我们一直在通过更改yaml文件,使用generate-migrations-diff选项运行doctrine命令来生成迁移文件,然后使用migrate选项迁移更改来从doctrine生成更改。

答案 1 :(得分:-1)

我确切地知道你的意思。有两种方法可以告诉symfony你的数据库结构是什么样的:

  1. 创建yaml文件 - >运行build-sql命令 - >运行insert-sql命令
  2. 在您的RDBMS中创建数据库 - >运行build-schema命令
  3. 使用方法1,您的数据每次都会被清除。使用方法2,您的数据保持不变。方法2的唯一问题是,你将消除你在yaml文件中的任何特定于学说的属性,你必须重新添加它们。但是,对我来说,这不是一个痛苦的问题。屁股,而不是必须将数据重新加载到数据库中。