【问题标题】:What's the best way to make small schema updates with Doctrine/Symfony?使用 Doctrine/Symfony 进行小型模式更新的最佳方法是什么?
【发布时间】:2010-12-20 00:00:20
【问题描述】:

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

我的问题是,我正在做一个新的副项目,偶尔会发现自己在这里添加一个新专栏,在那里我发现需要一个新专栏。但是,我的数据库已经有现有数据,我不想每次都运行完整的重建并删除我的数据库以及更改。

我也不想写固定装置。它们很烦人,而且使用我的应用程序插入数据并在开发时保留它要容易得多。我也不想编写迁移来添加一两列,尤其是当我经常这样做时。

是我唯一的选择:

  1. 更改架构文件并 每次架构更改后擦除数据库 - 或 -
  2. 更新架构文件 并手动运行更改语句 我的数据库

最终,我想做的是要么对我的数据库进行更改,让 symfony 弄清楚架构文件应该是什么样子,要么对架构文件进行更改,让 symfony 弄清楚要进行哪些新更改到现有的数据库。

请帮忙!

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

【问题讨论】:

  • 您应该尝试 ./symfony 学说:数据转储 - 将数据从学说转储到 yaml,如果您愿意,可以将其保留为固定装置。

标签: php orm schema symfony1 doctrine


【解决方案1】:

我完全明白你的意思。有两种方法可以告诉 symfony 你的数据库结构是什么样的:

  1. 创建yaml文件->运行build-sql命令->运行insert-sql命令
  2. 在 RDBMS 中创建数据库 -> 运行 build-schema 命令

使用方法 1,您的数据每次都会被清除。使用方法 2,您的数据保持不变。方法 2 的唯一问题是,您将清除 yaml 文件中的任何特定于教义的属性,并且必须重新添加这些属性。不过,对我来说,这在不如将数据重新加载到数据库中。

【讨论】:

    【解决方案2】:

    看这篇文章:

    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 选项的教义命令以生成迁移文件,然后使用 migrate 选项迁移更改。

    【讨论】:

      猜你喜欢
      • 2013-01-10
      • 1970-01-01
      • 2011-01-18
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      相关资源
      最近更新 更多