Ich benutze Sequelize für meinen Server (mit Mysql-Dialekt); in Sequelize-Dokumentation wird geschrieben, dass dies:Fremdschlüssel mit Sequelize werden nicht erstellt
var Task = this.sequelize.define('Task', { title: Sequelize.STRING })
, User = this.sequelize.define('User', { username: Sequelize.STRING })
User.hasMany(Task)
Task.belongsTo(User)
erstellt automatisch Fremdschlüssel Referenzen mit Einschränkungen; aber für mich dies nicht geschieht:
var Shop = sequelize.define('Shop', {
name: Sequelize.STRING,
address: Sequelize.STRING,
phone: Sequelize.STRING,
email: Sequelize.STRING,
percentage: Sequelize.FLOAT,
text: Sequelize.TEXT,
categories: Sequelize.TEXT,
start: Sequelize.DATE,
end: Sequelize.DATE
});
var Offer = sequelize.define('Offer', {
name: Sequelize.STRING,
deadline: Sequelize.DATE,
optionDuration: Sequelize.INTEGER
});
Shop.hasMany(Offer);
Offer.belongsTo(Shop);
Dies schafft die beiden Tabellen Geschäfte und Angebote, die beide mit nur „id“ Primärschlüssel
Ich habe auch einige n: m Verbände wie:
Group.hasMany(Accesslevel);
Accesslevel.hasMany(Group);
aber auch in diesem Fall, in der Join-Tabelle, die Sequelize erstellt, gibt es keinen Fremdschlüssel; also, wenn ich für ex löschen. ein acccesslevel, als die entsprechenden Datensätze in der Join-Tabelle accesslevelsgroups nicht gelöscht werden.
Weiß jemand, ob ich etwas falsch mache oder etwas verpasse? Was ich brauche, ist es, alle Fremdschlüssel für die Verbände zu schaffen und die Möglichkeit, das Verhalten zu spezifizieren ‚onDelete‘ und ‚onUpdate‘ (Kaskade)
- UPDATE ich eine Route für die Ausführung sync erstellt haben:
myServer.get('/sync', function (req, res) {
sequelize.sync({force: true}).success(function() {
console.log('sync done');
res.send(200, 'sync done');
}).error(function(error) {
console.log('there was a problem');
res.send(200, 'there was a problem');
});
});
So dann im Browser die DB-Struktur erstellen ich tippe 127.0.0.1:port/sync
sequelize doesnt Unterstützung ausländische keys.You Notwendigkeit, sie selbst zu erstellen. – mpm
@mpm Das ist blatelnly falsch, http://sequelizejs.com/docs/1.7.8/associations#foreign-keys –
@ WillemD'haeseleer gut das war der Fall, als ich es verwendet habe, froh, dass es jetzt unterstützt wird. – mpm