J'utilise Rails 5 avec PostGres 9.5. Je veux créer une clé étrangère à mes adresses des tables de ma table search_codes donc j'ai créé cette migrationComment créer une clé étrangère avec une contrainte de suppression en cascade dans ma migration Rails 5?
class CreateSearchCodeTable < ActiveRecord::Migration[5.0]
def change
create_table :search_codes do |t|
t.string :code
t.references :address, type: :string, index: true, foreign_key: true, on_delete: :cascade
t.index ["code"], name: "index_search_codes_on_code", unique: true, using: :btree
end
end
end
Cependant, ce qui est créé est le suivant. Notez la partie en cascade de la contrainte ne semble pas obtenir créé
myapp=> \d search_codes;
Table "public.search_codes"
Column | Type | Modifiers
------------+-------------------+-----------------------------------------------------------
id | integer | not null default nextval('search_codes_id_seq'::regclass)
code | character varying |
address_id | character varying |
Indexes:
"search_codes_pkey" PRIMARY KEY, btree (id)
"index_search_codes_on_code" UNIQUE, btree (code)
"index_search_codes_on_address_id" btree (address_id)
Foreign-key constraints:
"fk_rails_6bd9792e3b" FOREIGN KEY (address_id) REFERENCES addresses(id)
Comment puis-je créer une migration avec une contrainte de clé étrangère en cascade à l'aide des rails 5 migration et PostGres?
Cool. Je déteste quand les choses qui devraient fonctionner (comme spécifier "on_delete") ne le font pas. – Dave