我们有一个开发团队,每个人都将使用Rails工具为我们的系统开发数据库迁移。迁移似乎是管理数据库模式变化的好方法,但随着我们的开发进展,以分布式方式管理变化变得更加困难。如果我们每个人都单独开发迁移,如何解决出现的问题呢?
具体来说,想象一下以下时间轴场景:
1. 开发人员A创建了一个新的迁移文件,时间戳为上午9:00。 2. 开发人员B在上午10:00创建了另一个新的迁移文件。 3. 开发人员B在上午11:00检入了时间戳为10:00的迁移。 4. 开发人员A在上午11:30检入了时间戳为9:00的迁移。
这里可能会出现许多问题,特别是如果两个迁移文件在其更改方面存在冲突,但最基本的问题是有些人在检入9:00迁移时已经运行了10:00迁移。与迁移相关联的时间戳当然是文件创建时的时间,而不是检入时的时间,这将混淆Rails迁移器。
这是一个可解决的问题,但解决方案可以有很多不同的选项。什么是最好的方法(或至少是一个好方法)来解决这个问题呢?
具体来说,想象一下以下时间轴场景:
1. 开发人员A创建了一个新的迁移文件,时间戳为上午9:00。 2. 开发人员B在上午10:00创建了另一个新的迁移文件。 3. 开发人员B在上午11:00检入了时间戳为10:00的迁移。 4. 开发人员A在上午11:30检入了时间戳为9:00的迁移。
这里可能会出现许多问题,特别是如果两个迁移文件在其更改方面存在冲突,但最基本的问题是有些人在检入9:00迁移时已经运行了10:00迁移。与迁移相关联的时间戳当然是文件创建时的时间,而不是检入时的时间,这将混淆Rails迁移器。
这是一个可解决的问题,但解决方案可以有很多不同的选项。什么是最好的方法(或至少是一个好方法)来解决这个问题呢?