不要怂,就是干,撸起袖子干!

Commit 4cae20ec by Jan Aagaard Meier

Only assign default null to id after applying default values.

1 parent c84e73cb
Showing with 20 additions and 3 deletions
......@@ -647,12 +647,15 @@ module.exports = (function() {
// private
var initValues = function(values, options) {
// set id to null if not passed as value, a newly created dao has no id
var defaults = this.hasPrimaryKeys ? {} : { id: null },
key;
var defaults,
key,
primaryKeyAttribute;
values = values && _.clone(values) || {}
if (options.isNewRecord) {
defaults = {};
if (this.hasDefaultValues) {
Utils._.each(this.defaultValues, function(valueFn, key) {
if (!defaults.hasOwnProperty(key)) {
......@@ -661,6 +664,19 @@ module.exports = (function() {
})
}
// set pk to null if not passed as value, a newly created dao has no id
// removing this breaks bulkCreate
// do after default values since it might have UUID as a default value
if (this.Model._hasPrimaryKeys) {
primaryKeyAttribute = this.model.primaryKeyAttributes[0];
} else {
primaryKeyAttribute = 'id';
}
if (!defaults.hasOwnProperty(primaryKeyAttribute)) {
defaults[primaryKeyAttribute] = null;
}
if (this.Model._timestampAttributes.createdAt && defaults[this.Model._timestampAttributes.createdAt]) {
this.dataValues[this.Model._timestampAttributes.createdAt] = Utils.toDefaultValue(defaults[this.Model._timestampAttributes.createdAt]);
delete defaults[this.Model._timestampAttributes.createdAt];
......@@ -675,7 +691,7 @@ module.exports = (function() {
this.dataValues[this.Model._timestampAttributes.deletedAt] = Utils.toDefaultValue(defaults[this.Model._timestampAttributes.deletedAt]);
delete defaults[this.Model._timestampAttributes.deletedAt];
}
}
if (Object.keys(defaults).length) {
for (key in defaults) {
if (!values.hasOwnProperty(key)) {
......@@ -683,6 +699,7 @@ module.exports = (function() {
}
}
}
}
this.set(values, options)
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!