与单表继承的分支冲突

时间:2012-08-29 13:55:19

标签: ruby-on-rails single-table-inheritance

我想在我的一个表中使用单表继承方法。所以我创建了一个新的git分支(出于显而易见的原因:)并为表创建了STI。现在,当我切换回我的主分支以运行其他测试时,我得到单表继承错误:

  

“单表继承机制无法找到子类:'xxx'。引发此错误是因为列'type'保留用于存储继承的类。如果没有,请重命名此列打算将它用于存储继承类或覆盖Transaction.inheritance_column以使用另一列来获取该信息。“

我的问题是,如何将STI隔离到一个分支?我认为通过分支方法,它不会在我的主分支中产生问题。请指教!

1 个答案:

答案 0 :(得分:1)

如果您正在使用STI,您的数据库将会更改。

MySQL本身不在git下 - 你需要确保数据库与你当前的分支同步。

选项包括:

  • 创建新的特定于分支的数据库,并修改数据库配置中的默认环境。
  • 吹走数据库并使用迁移/转储/等重新创建。并重新加载任何初始数据。

我倾向于第一个(特定于分支的数据库),因为它是一个简单的配置文件更改( 在源代码管理下)并且迁移很简单,并且特定于分支。您可能需要记住在删除分支时删除其他DB(或编写同时执行这两个操作的脚本)。

可能还有其他解决方案,希望人们会编辑这个答案并加入它们。