sql >> Base de Datos >  >> RDS >> PostgreSQL

no se puede eliminar el objeto debido a la restricción de clave externa

Primero deberá eliminar la Identidad que hace referencia al usuario. Luego puede eliminar el usuario. Por defecto, la clave externa está haciendo una restrict por lo que no puede eliminar el usuario si algo hace referencia a él.

si desea usar Rails para manejar la destrucción de la identidad, puede hacerlo

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

  ......

 end 

Lo que haría que Rails destruyera todos los registros dependientes.

Pero como está utilizando claves externas, puede ajustar su migración para establecer eliminaciones en cascada

 add_foreign_key :identities, :users, on_delete: :cascade

Asumiendo Rails 4.2 que tiene soporte nativo