开发和生产数据库?

Hum*_*ton 13 mysql

我正在使用PHP和mySQL.我终于掌握了源代码控制,并且非常满意PHP部分的整个开发(测试)v生产v存储库的事情.

我的新窘境是如何处理数据库.我是为测试环境创建一个还是为生产环境创建一个?我目前只有两个环境都使用的那个,让我的测试数据就在那里.我觉得我应该有两个,但我确信我的生产数据库的外观和感觉与我的测试数据完全相同.

有关哪条路的想法?而且,如果你认为后者,最好的方法是保持两个数据库相同(当然除了数据......)?

aho*_*ley 19

每个环境都应该有一个单独的数据库 编写所有数据库对象(表,视图,过程等)并将脚本存储在源代码管理中.这些脚本首先应用于开发数据库,​​然后升级到测试(QA,UAT等),然后生成.通过将相同的脚本应用于每个数据库,它们最终都应该是相同的.

如果您有需要加载的数据(代码表,查找值等),那么数据加载的脚本将作为数据库创建过程的一部分加载.

通过编写所有内容并将其保留在源代码控制中,可以随时为任何给定的构建级别重新创建数据库结构.

  • 我对源代码控制做了类似的事情,但是我要在这里做一个区分。我将所有对象编写为单独的文件,因此源控件具有对象级别的更改历史记录,而一个始终在变化的大文件。 (2认同)

Bre*_*ann 5

你绝对应该有两个。至于保持它们同步,您应该始终创建 DDL 来创建您的数据库对象。像对待 PHP 代码一样对待这些脚本 - 将它们保留在版本控制中。任何时候您必须修改测试数据库,请制作一个脚本来执行此操作并将其签入。然后您可以在准备好后将这些更改传播到生产系统。

  • DDL?我以前从未听说过这个缩写词。 (3认同)