sql >> Databasteknik >  >> RDS >> Mysql

Hur lägger jag till en kontrollbegränsning i en Rails-migrering?

Rails-migrering ger inget sätt att lägga till begränsningar, men du kan fortfarande göra det via migrering men genom att skicka faktisk SQL till execute()

Skapa migreringsfil:

ruby script/generate Migration AddConstraint

Nu, i migreringsfilen:

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


  1. serie i postgres ökar även om jag har lagt till på konflikt gör ingenting

  2. Skicka e-post från MySQL-utlösaren när en tabell uppdateras

  3. Distribuera Django + Python 3 + PostgreSQL till AWS Elastic Beanstalk

  4. Hitta och ta bort dubbletter av rader med två kolumner