Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie füge ich eine Check-Einschränkung in einer Rails-Migration hinzu?

Die Rails-Migration bietet keine Möglichkeit, Einschränkungen hinzuzufügen, aber Sie können dies immer noch über die Migration tun, indem Sie tatsächliches SQL an execute()

übergeben

Migrationsdatei erstellen:

ruby script/generate Migration AddConstraint

Jetzt in der Migrationsdatei:

class AddConstraint < ActiveRecord::Migration
  def self.up
    execute "ALTER TABLE table_name ADD CONSTRAINT check_constraint_name CHECK (check_column_name IN (1, 2, 3) )"
  end

  def self.down
    execute "ALTER TABLE table_name DROP CONSTRAINT check_constraint_name"
  end
end