2013-02-10 95 views
5

我目前正在学习支持迁移的框架。使用迁移的好处

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

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

回答

7

迁移是部署过程的一部分。所以迁移的好处(一般)是

  • 您不必做手工(因为在部署中,大概算了架构变化迟早)
  • 您可以在本地进行测试(因为您可能迟早会犯错误)
  • 您不必告诉您的团队成员手动更改其本地数据库(因为这只是烦人的),或导入新的转储(再次...)
  • 如果您有多个环境(舞台,产品,测试),您必须在任何系统上执行此步骤。这增加了失误
  • 你可能不希望导入的(可能是过时的)发展数据库到实时系统的概率)

注意,在一个项目的开始模式可以简单,数据库小,但这不会留下来。迟早(;))你将面对巨大的数据库,这需要时间导入。

附加说明:良好的迁移通常会有一个“降级” - 一旦发生错误。如果部署出错,采用您的方法,您必须手动还原数据库更改,这更容易出错。

+0

这是非常有用的:) – 2013-02-10 12:01:45

3

将它们视为数据库的版本控制。它还可以将您的更改部署到多个环境(例如,您的开发环境,然后是您的测试/生产服务器),并且可以轻松自动地进行部署,而不必记住您在PHPMyAdmin中执行的操作。

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

+0

为什么不只是导出我的.sql文件,我的团队将它导入到他们的数据库中? 并感谢您的回答:) – 2013-02-10 11:57:21

+0

您可以这样做,但也许他们正在为您提供不同的功能,并添加了一堆他们正在使用的临时测试数据。数据库迁移将允许他们保留测试数据并添加新的更改,而不是替换整个数据库并重新添加测试数据。 – ChrisC 2013-02-10 11:59:26

+0

@KhalidKhalil最简单的答案:如果你有一个数据库,那是不可思议的烦人的,那是超过(可以说)500MB,你必须反复导入它,只是因为一个团队成员添加一个列:D – KingCrunch 2013-02-10 12:01:34