PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

não é possível excluir o objeto devido à restrição de chave estrangeira


Você precisaria remover a identidade que faz referência ao usuário primeiro. Então você pode excluir o usuário. Por padrão, a chave estrangeira está fazendo um restrict portanto, você não pode excluir o usuário se algo fizer referência a ele.

se você quiser usar o Rails para lidar com a destruição da identidade, você pode fazer
class User < ActiveRecord::Base
  has_many :identities,  dependent: :destroy 

  ......

 end 

O que faria com que o Rails destruísse todos os registros dependentes.

Mas como você está usando chaves estrangeiras, você pode ajustar sua migração para definir exclusões em cascata
 add_foreign_key :identities, :users, on_delete: :cascade

Assumindo Rails 4.2 que tem suporte nativo