Database 使用迁移的好处

Database 使用迁移的好处,database,version-control,language-agnostic,migration,Database,Version Control,Language Agnostic,Migration,我目前正在学习一个支持迁移的框架 我的问题是:使用迁移的主要好处是什么? 为什么我们不直接使用数据库管理工具来添加/删除/更改表和执行其他操作呢?或者,为什么不直接导出我的.sql文件,让我的团队将其导入到他们的数据库中呢?可以将它们视为数据库的版本控制。它还使将更改部署到多个环境(例如,您的开发环境,然后是测试/生产服务器)变得简单和自动化,而无需记住您在PHPMyAdmin中所做的操作 告诉某人他们需要迁移数据库比告诉他们需要对数据库进行的每个更改更容易。迁移是部署过程的一部分。因此,迁移的

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

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


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

可以将它们视为数据库的版本控制。它还使将更改部署到多个环境(例如,您的开发环境,然后是测试/生产服务器)变得简单和自动化,而无需记住您在PHPMyAdmin中所做的操作


告诉某人他们需要迁移数据库比告诉他们需要对数据库进行的每个更改更容易。

迁移是部署过程的一部分。因此,迁移的好处(通常)是

  • 您不必手动执行此操作(因为在部署时,您可能迟早会忘记模式更改)
  • 您可以在本地测试它(因为您可能迟早会出错)
  • 您不必告诉团队成员手动更改其本地数据库(因为这很烦人),也不必导入新的转储文件(再次…)
  • 如果您有多个环境(阶段、产品、测试),则必须在任何系统上执行此步骤。这增加了出错的可能性
  • 您可能不想将(可能过时的)开发数据库导入到实时系统中;)
请注意,在项目开始时,模式可能很简单,数据库也可能很小,但这不会一直持续下去。迟早(;)您将面临巨大的数据库,这需要时间来导入


附加:一个好的迁移通常有一个“降级”步骤,以防出现错误。使用这种方法,如果部署出错,您必须手动恢复数据库更改,这更容易出错。

为什么不直接导出我的.sql文件,让我的团队将其导入到他们的数据库中呢??谢谢你的回答:)你可以这么做,但也许他们正在为你开发一个不同的功能,并添加了一堆他们正在使用的临时测试数据。DB迁移将允许他们保留测试数据,只添加新的更改,而不是替换整个DB并重新添加测试数据。@KhalidKhalil最简单的答案是:如果你有一个超过(比方说)500MB的数据库,你必须一次又一次地导入它,这令人难以置信地恼火,仅仅因为一个团队成员添加了一个列:DThanks Everyone,我现在就知道了:)这非常有用:)