Uso Sequelize per il mio server (con dialetto mysql); nella documentazione di Sequelize è scritto che questo:Le chiavi esterne con Sequelize non vengono create
var Task = this.sequelize.define('Task', { title: Sequelize.STRING })
, User = this.sequelize.define('User', { username: Sequelize.STRING })
User.hasMany(Task)
Task.belongsTo(User)
crea automaticamente riferimenti a chiavi esterne con vincoli; ma per me questo non accade:
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);
Questo crea i due negozi e le offerte tavoli, entrambi con solo "id" chiave
Ho anche qualche n primarie: m associazioni come:
Group.hasMany(Accesslevel);
Accesslevel.hasMany(Group);
ma anche in questo caso, nella tabella di join creata da Sequelize, non ci sono chiavi esterne; quindi se cancello per ex. un acccesslevel, che i record corrispondenti nella tabella join accesslevelsgroups non vengono cancellati.
Qualcuno sa se sto facendo qualcosa di sbagliato o manca qualcosa? Che cosa ho bisogno è quello di creare tutte le chiavi esterne per le associazioni e la possibilità di specificare il comportamento 'onDelete' e 'onUpdate' (cascata)
- UPDATE Ho creato un percorso per la sincronizzazione eseguendo:
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');
});
});
allora nel browser tipo I 127.0.0.1:port/sync per creare la struttura db
sostegno doesnt sequelize estera keys.You necessità di creare da soli. – mpm
@mpm Che è blatelnly errato, http://sequelizejs.com/docs/1.7.8/associations#foreign-keys –
@ WillemD'haeseleer bene che è stato il caso in cui l'ho usato, felice che ora sia supportato. – mpm