Yeni bir satır oluştururken başlatılabilen, ancak hiçbir zaman güncellenemeyen bir MySQL tablosunda Sequelize kullanarak bir sütun oluşturmak mümkün mü? Örneğin, bir REST servisi kullanıcının bir kullanıcının profilini güncellemesine izin verir. id
dışında herhangi bir alanı değiştirebilir. API yolundaki istek üzerine id
'u kapatabilirim, ancak bu biraz fazlalıktır, çünkü benzer şekilde davranan çok sayıda farklı model vardır. İdeal olarak, id
sütununun DEFAULT
'dan başka bir değere ayarlanmasını engelleyen bir Sequelize kısıtlaması tanımlamak istiyorum.Güncellenemeyen bir Sequelize sütun
Şu anda için bir setterMethod
kullanıyorum ValidationError
, ancak bu hackish görünüyor, bu yüzden bunu yapmak daha temiz bir yolu olup olmadığını merak ediyordum. Daha da kötüsü, bu uygulamanın hala yeni bir kayıt oluştururken id
'un ayarlanmasına izin vermesidir, ancak, Sequelize, DEFAULT
değerini ayarlamak için setterMethods.id
aramasını yaptığı sorguyu oluşturduğunda bunu bilmiyorum. Bu Sequelize eklenti de
return sequelize.define('Foo',
{
title: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
validate: {
notEmpty: true
}
}
},
{
setterMethods: {
id: function (value) {
if (!this.isNewRecord) {
throw new sequelize.ValidationError(null, [
new sequelize.ValidationErrorItem('readonly', 'id may not be set', 'id', value)
]);
}
}
}
}
);
Sadece aynısını merak ediyorum. https://github.com/sequelize/sequelize/issues/4603 – diosney