sql >> Databasteknik >  >> RDS >> PostgreSQL

Lägger till främmande nyckel till en rälsmodell

Det för närvarande accepterade svaret på detta är inte riktigt korrekt eftersom det inte lägger till en främmande databasnyckel. Det är bara att lägga till heltalskolumner.

I Rails 4.2.x , det nuvarande tillvägagångssättet är:

http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys

Skapa en migrering:

rails generate migration migration_name

För befintliga kolumner , i migreringen lägg till de främmande nycklarna så här:

class MigrationName < ActiveRecord::Migration
  def change
    add_foreign_key :business_hours, :businesses
    add_foreign_key :businesses, :users
  end
end

För Rails 4.x eller om du lägger till en ny kolumn och vill att det ska vara en främmande nyckel kan du göra detta, där du förmodligen också vill ange indexet som sant, men det är inte en del av kravet för den främmande nyckeln:

http://edgeguides.rubyonrails.org/active_record_migrations.html#creating-a-migration

class MigrationName < ActiveRecord::Migration
  def change
    add_reference :business_hours, :business, index: true, foreign_key: true
    add_reference :businesses, :user, index: true, foreign_key: true
  end
end


  1. Hur man hittar och ersätter text i MySQL-databasen med SQL

  2. NUMTODSINTERVAL() Funktion i Oracle

  3. Hur DateTime()-funktionen fungerar i SQLite

  4. MariaDB JSON_CONTAINS_PATH() Förklarad