2017-07-16 3 views
0

Je veux déposer quelques tables en utilisant « knex » mais j'ai une erreur Cannot delete or update a parent row: a foreign key constraint fails lorsque je tente de laisser tomber table avec clé étrangère:JS Knex: obtenir les clés étrangères d'une table

knex.schema.dropTableIfExists(name); 

Je peux utiliser dropForeign() fonction pour déposer la clé étrangère mais j'ai besoin de connaître le nom de la clé étrangère.

Comment puis-je obtenir des noms de clés étrangères en utilisant 'knex'?

Répondre

1

Le format de dénomination d'index de clé étrangère habituel dans knex est: tableName_columnName_foreign.
Par exemple: Si vous avez dans le tableau chat une clé étrangère nommée visitor_id alors son nom d'index sera: chat_visitor_id_foreign

Cela dit, vous aurait pas besoin de cela, à moins que quelqu'un a explicitement substituée le nom par défaut clé étrangère. Dans ce cas, recherchez-le dans le fichier de migration ou recherchez-le dans la base de données.