Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso aggiungere un vincolo di controllo in una migrazione Rails?

La migrazione di Rails non fornisce alcun modo per aggiungere vincoli, ma puoi comunque farlo tramite la migrazione ma passando l'SQL effettivo da eseguire()

Crea file di migrazione:

ruby script/generate Migration AddConstraint

Ora, nel file di migrazione:

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