0

私は自分のテーブルの1つで単一テーブル継承アプローチを試してみたかったのです。そこで、(明らかな理由で:)新しいgitブランチを作成し、テーブルのSTIを作成しました。他のテストを実行するためにマスターブランチに戻ると、単一テーブル継承エラーが発生します。

「単一テーブル継承メカニズムはサブクラス'xxx'を見つけることができませんでした。このエラーは、列'type'が継承の場合にクラスを格納するために予約されているために発生します。意図しない場合は、この列の名前を変更してください継承クラスを格納するために使用するか、Transaction.inheritance_columnを上書きして、その情報に別の列を使用します。」

私の質問は、STIを1つのブランチだけに分離するにはどうすればよいですか?分岐アプローチで行くと思ったのですが、マスターブランチで問題が発生することはありません。ご意見をお聞かせください!

4

1 に答える 1

1

STIを使用している場合、DBは変更されます。

MySQL自体はgitの下にありません。DBが現在のブランチと同期していることを確認する必要があります。

オプションは次のとおりです。

  • 新しいブランチ固有のDBを作成し、DB構成のデフォルト環境を変更します。
  • DBを吹き飛ばし、migrations / dump/etcを使用して再作成します。初期データをリロードします。

最初の(ブランチ固有のDB)は、単純な構成ファイルの変更(ソース管理下にある)であり、移行は単純でブランチ固有であるため、私は最初の(ブランチ固有のDB)を好む傾向がありました。ブランチを削除するとき(または両方を同時に実行するスクリプトを作成するとき)に、追加のDBを削除することを忘れないでください。

他の解決策がある可能性があります。うまくいけば、人々はこの答えを編集してそれらを含めるでしょう。

于 2012-08-29T14:02:44.767 に答える