PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

impossibile eliminare l'oggetto a causa di un vincolo di chiave esterna

Dovresti rimuovere prima l'identità che fa riferimento all'utente. Quindi puoi eliminare l'utente.. Per impostazione predefinita, la chiave esterna esegue un restrict quindi non puoi eliminare l'utente se qualcosa fa riferimento ad esso.

se vuoi usare Rails per gestire la distruzione dell'identità puoi farlo

class User < ActiveRecord::Base
  has_many :identities,  dependent: :destroy 

  ......

 end 

Il che indurrebbe Rails a distruggere tutti i record dipendenti.

Tuttavia, poiché stai utilizzando chiavi esterne, puoi regolare la migrazione per impostare eliminazioni a cascata

 add_foreign_key :identities, :users, on_delete: :cascade

Supponendo che Rails 4.2 abbia il supporto nativo