Merge pull request #1817 from strongloop/relational-strict

fix: warn about strict cannot be false with relational dbs
This commit is contained in:
Agnes Lin 2020-01-21 11:17:10 -05:00 committed by GitHub
commit d2b4d567d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 3 deletions

View File

@ -178,11 +178,11 @@ There are a set of options to control the model definition.
- strict:
- true: Only properties defined in the model are accepted. Use this
mode if you want to make sure only predefined properties are accepted.
mode if you want to make sure only predefined properties are accepted. Relational databases only support this setting.
- false: The model will be an open model. All properties are accepted,
including the ones that not predefined with the model. This mode is useful
if the mobile application just wants to store free form JSON data to
a schema-less database such as MongoDB.
a schema-less database such as MongoDB. For relational databases, the value will be converted back to true.
- undefined: Default to false unless the data source is backed by a
relational database such as Oracle or MySQL.

View File

@ -826,7 +826,9 @@ DataSource.prototype.define = function defineClass(className, properties, settin
settings.strict = true;
}
if (settings.strict === false) {
settings.strict = 'throw';
console.warn("WARNING: relational database doesn't support {strict: false} mode." +
` {strict: true} mode will be set for model ${className} instead.`);
settings.strict = true;
}
}