使代码、数据库结构和数据库数据在修订之间保持同步

r9f1avp5  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(314)

这个问题困扰了我一段时间,对谷歌来说似乎是个棘手的问题。
我正在寻找最好的(或者至少是一个体面的)方法来保持我的代码、数据库结构和数据库数据彼此同步。我目前使用的是Laravel5,它为我提供了迁移和种子。第一种方法非常适合于数据库结构的更改。后者似乎还可以,但不需要考虑时间。
所以我有一个laravel装置,我几个月前安装的。它有20张table和一些播种机文件。现在我重命名了现有表结构中的一列。
当我从头开始创建我的laravel站点时,我显然是先运行迁移,否则根本就没有表了。在那之后,我运行seeds并在insert查询中失败。
问题来了:播种机不应该依赖于迁移的时间吗?或者应该在数据库结构发生更改时更改所有种子?一定有更好的办法,我错过什么了吗?这应该怎么做?

5fjcxozz

5fjcxozz1#

种子的问题是它们需要更新以反映当前模式,而不是它们产生时与之相关的任何历史模式。
这就是为什么通常最好保持你的种子绝对最少。如果这是不可避免的有一个干净的种子数据库,你可以提供给任何人谁需要在项目上工作。种子数据库的风险在于,它可能包含迁移中没有的修改,例如删除迁移或应用从未提交到代码的迁移时。
理想情况下,您的项目应该通过运行迁移和从种子构建来从头开始工作,您应该间歇性地测试这个过程,以确保没有破坏任何东西。

相关问题