method
add_unique_constraint
v7.1.3.2 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaStatements
add_unique_constraint(table_name, column_name = nil, **options)public
Adds a new unique constraint to the table.
add_unique_constraint :sections, [:position], deferrable: :deferred, name: "unique_position"
generates:
ALTER TABLE "sections" ADD CONSTRAINT unique_position UNIQUE (position) DEFERRABLE INITIALLY DEFERRED
If you want to change an existing unique index to deferrable, you can use :using_index to create deferrable unique constraints.
add_unique_constraint :sections, deferrable: :deferred, name: "unique_position", using_index: "index_sections_on_position"
The options hash can include the following keys:
- :name
-
The constraint name. Defaults to uniq_rails_<identifier>.
- :deferrable
-
Specify whether or not the unique constraint should be deferrable. Valid values are false or :immediate or :deferred to specify the default behavior. Defaults to false.
- :using_index
-
To specify an existing unique index name. Defaults to nil.