Ich habe Product
Tabelle mit Spalten folgende [id, name, CategoryId]
und Category
Tabelle mit [id, name]
Sequelize.js onDelete: 'Kaskade' nicht Löschen von Datensätzen sequelize
Produkt-Modell: -
module.exports = function(sequelize, DataTypes) {
var Product = sequelize.define('Product', {
name: DataTypes.STRING
}, {
associate: function(models) {
Product.belongsTo(models.Category);
}
});
return Product
}
Kategorie Modell: -
Wenn ich Kategorie lösche, löscht es Kategorie nur nicht die entsprechenden Produkte damit verbunden. Ich weiß nicht, warum das passiert?
Update: Sequelize Version sequelize 1.7.0
==================================== ======================================== Antwort (Wie diese I fest): -.
I erreicht dies durch Einschränkung für Datenbank mit Alter
Befehl das Hinzufügen, als Add Foreign Key Constraint
migration
durch eine offene bug in sequelize
.
ALTER TABLE "Products"
ADD CONSTRAINT "Products_CategoryId_fkey" FOREIGN KEY ("CategoryId")
REFERENCES "Categories" (id) MATCH SIMPLE
ON DELETE CASCADE
Was ist die Ausgabe von sequelize.sync? Fügt es einen Fremdschlüssel mit einer On-Delete-Einschränkung hinzu? In welcher Version bist du? –
@JanAagaardMeier Die Produkttabelle hat die Spalte 'CategoryId', die Bedingung für den Fremdschlüssel ist jedoch nicht hinzugefügt. Wie füge ich einen Fremdschlüssel mit der Löschbedingung hinzu? –
Muss ich eine Migration hinzufügen, um eine Fremdschlüsseleinschränkung hinzuzufügen? –