ActiveRecordが理解できないデータベース固有の機能が必要または必要な場合は、db/structure.sql
に切り替える必要があります。 スキーマを追跡するため。 db/structure.sql
これは、データベースのネイティブツールを使用して作成されたスキーマの生のダンプであるため、トリガー、CHECK制約、関数結果のインデックス、その他すべてが含まれます。
切り替えは簡単です:
-
config/application.rb
を更新しますconfig.active_record.schema_format = :sql
を含める 。 -
rake db:structure:dump
を実行します 最初のdb/structure.sql
を取得します 。 -
db/schema.rb
を削除します ディレクトリツリーとリビジョン管理から。 -
db/structure.sql
を追加します リビジョン管理へ。 - レーキの習慣を調整します:
-
db:structure:dump
を使用しますdb:schema:dump
の代わりに -
db:structure:load
を使用しますdb:schema:load
の代わりに
-
他のすべては通常どおりに機能するはずです(もちろん、あなたが正気で、開発、テスト、および本番環境にPostgreSQLを使用していると仮定します)。
この変更が行われると、トリガーはdb/structure.sql
で追跡されます。 データベースを再作成しても、それらは失われません。