-
Notifications
You must be signed in to change notification settings - Fork 23
Open
Description
Hi!
Some migrations unfortunately cannot be run safely and are then impossible to run.
When using a partitioned table on PostgreSQL, this migration, where slots
is the partitioned table, will fail because of 2 Postgres errors:
add_reference :slots, :variation, index: true, foreign_key: true
ActiveRecord::StatementInvalid: PG::WrongObjectType: ERROR: cannot add NOT VALID foreign key on partitioned table "slots" referencing relation "variations"
: sincevalidate: false
is forcedPG::FeatureNotSupported: ERROR: cannot create index on partitioned table "stock_slots" concurrently
: sincealgorithm: :concurrently
is forced
Is there a way to explicitly disable the safeness in a block? If not, what about a block:
unsafe_migration do
add_reference :slots, :variation, index: true, foreign_key: true, validate: true
end
Telling: I know it is not safe, and then it can be caught before deployment to take appropriate measures.
Metadata
Metadata
Assignees
Labels
No labels