我遇到了一个问题,我在一个 rails 项目的两个分支上工作,每个项目都有一个迁移来添加一个列。当时,rake db:migrate:reset
导致一个问题,我完全依靠我schema.rb
来正确表示我的数据库的状态。有一次,我遇到了一个问题,分支 A 添加的列进入了分支 B 的架构。由于migrate:reset
不是一个选项,我求助于手动编辑架构文件。我提交了这个更改,基本上从分支 A 中删除了我在分支 B 的 schema.rb 中不需要的列。
在我将分支 A 合并到 master 之后出现问题。当我尝试将分支 B 重新设置为 master 时,我仍然在 B 中提交以删除模式文件中的列(现在已变得相关,因为它在 master 中)。Git 没有发现冲突并自动合并它。在我的 rebase 结束时,我发现我的架构与我在 master 中的架构不一致。
我的解决方法是再次编辑架构文件并将先前删除的列手动添加回架构文件。我的问题是:这被认为是非常规的吗?危险的?哈基?
现在它涉及一列,但如果这涉及多列删除/添加(危险?)解决方案可能会导致更多问题和 db/schema.rb 不一致。