0

名前付き制約を作成する移行があります

execute(%Q{
  ALTER TABLE dreamflore_clients
    ADD CONSTRAINT unique_clients UNIQUE( client, no_adresse );
})

しかし ではschema.rb、レールはこの部分をインデックスに変えます

add_index "dreamflore_clients", ["client", "no_adresse"], name: "unique_clients", unique: true, using: :btree

問題は、使用していてApartment、新しく作成されたテナントに制約の代わりにインデックスがあり、postgreSQL 機能を使用していることです。ON CONFLICT ON CONSTRAINT

今のところ、解決策はいくつかの移行をロールバックして再度移行することですが、これは本当に汚いハックです

レールがこのインデックスを作成するのを止めるには?

4

1 に答える 1

1

を実行して、schema.rb の代わりに structure.sql を使用してみましたrake db:structure:dumpか?

schema.rb には構文に関するいくつかの制限があり、structure.sql に切り替えることでこの問題を解決できるはずです。

environment.rbに追加することで、structure.sql への切り替えを永続的にすることができconfig.active_record.schema_format = :sqlます。

于 2016-06-01T14:41:35.963 に答える