2016-06-01 2 views
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

Для n ow решение - откат некоторых миграций и миграция снова, но это действительно грязный хак

Как остановить рельсы, создающие этот индекс?

ответ

1

Вы пробовали использовать struct.sql вместо schema.rb, запустив rake db:structure:dump?

schema.rb имеет некоторые ограничения относительно синтаксиса и переключения на struct.sql должны решить эту проблему.

Вы можете сделать переключатель на struct.sql постоянным, добавив config.active_record.schema_format = :sql в environment.rb.

 Смежные вопросы

  • Нет связанных вопросов^_^