0

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

“单表继承机制未能定位子类:‘xxx’。出现此错误是因为‘type’列保留用于存储类以防继承。如果您不打算这样做,请重命名此列用于存储继承类或覆盖 Transaction.inheritance_column 以使用另一列存储该信息。”

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

4

1 回答 1

1

如果您使用 STI,您的数据库将会改变。

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

选项包括:

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

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

可能还有其他解决方案,希望人们会编辑此答案并将其包括在内。

于 2012-08-29T14:02:44.767 回答