diff --git a/docs/definition-language.md b/docs/definition-language.md index 1b4dd2e2d..c0de36b13 100644 --- a/docs/definition-language.md +++ b/docs/definition-language.md @@ -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. diff --git a/lib/datasource.js b/lib/datasource.js index 2500677a9..da40aec84 100644 --- a/lib/datasource.js +++ b/lib/datasource.js @@ -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; } }