使用迁移的好处

Kha*_*lil 5 database language-agnostic migration version-control

我目前正在学习支持迁移的框架.

我的问题是:使用迁移的主要好处什么?

为什么我们不使用数据库管理工具来添加/删除/更改表并直接执行其他操作?或者为什么不直接导出我的.sql文件,我的团队将其导入数据库?

Kin*_*nch 8

迁移是部署过程的一部分.因此,迁移(一般而言)的好处是

  • 您不必手动执行此操作(因为在部署时,您可能迟早会忘记架构更改)
  • 你可以在本地测试它(因为你迟早会犯错)
  • 您不必告诉您的团队成员手动更改其本地数据库(因为这简直令人讨厌),或导入新的转储(再次......)
  • 如果您有多个环境(stage,prod,test),则必须在任何系统上执行此步骤.这增加了错误的概率
  • 您可能不希望将(可能已过时的)开发数据库导入到实时系统中;)

请注意,在项目开始时,模式可能很简单,数据库很小,但这不会保留.迟早(;))你将面临庞大的数据库,需要时间来导入.

附加:良好的迁移通常会在出现错误时"降级".使用您的方法,如果部署出错,您必须手动还原数据库更改,这更容易出错.