问题描述
我正在研究数据库管理,并在个人项目中为Phoenix / Elixir应用程序编写迁移,并在Laravel / Eloquent的开发数据库中进行同样的工作。
我对迁移有一些一般性的问题,因为我是编写迁移过程的新手,但如果我没记错的话,我认为所有这些系统都很大程度上基于Active Record for Rails。
在迁移完成之后,进行迁移(强制迁移或强制迁移或迁移)是一个好主意,它是只读的,不可删除的,不可编辑的或不可更改的等。 ?
由于它们是按顺序运行的,因此似乎每200个迁移中的一个丢失或进行编辑会破坏数据库,并产生一些噩梦般的外键或数据类型错误。
如果在一系列迁移文件A-B-C-D-E-F-G-H-I-J中,我删除或修改了B的迁移,则后续的up()或down()方法将不起作用。因此,对我来说似乎很明显,迁移必须是“不可变的”,并且团队应该有一个约定,即如果已编写迁移并至少运行了一次迁移,或者在迁移之前进行了迁移,则永远不能再次对其进行编辑。
然后,如果犯了一个错误,则编写另一个迁移来扭转这些影响-这种方式的变化就像是类型安全的链表,没有悬空的指针。
这是对的吗?在哪里可以找到有关与迁移有关的好事和坏事的更多信息,以及在什么情况下适合删除所有迁移或压榨它们并将新的模式仅转储到数据库中?我在网上找到的大多数资源都集中在如何进行迁移上,而不是一些技巧,或者集中在整个SQL上。
此外,我有一个新的工作项目,由于两个组件的组件使用相似的表,所以我不得不将两个生产数据库一起粉碎,但是业务需求完全不同。
对于旧项目(特别是当原始开发人员不再在公司中时)使用旧的迁移似乎是不明智的,当它们与数据库无关时?还是只是从全新的架构开始,一旦数据库足够稳定就进行新的迁移?
非常感谢您抽出宝贵的时间。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)