问题
I'm getting below error on expressJs with Sequelize
DeprecationWarning: A boolean value was passed to options.operatorsAliases. This is a no-op with v5 and should be removed.
Any idea to fix this?
回答1:
This is not an error, it's simply a warning stating that passing boolean values to operatorsAliases
in sequelize options
will be deprecated in v5.
To remove the warning, replace the boolean value by '1'
or '0'
for true and false respectively.
回答2:
Package versions:
"sequelize": "^5.21.3",
"sequelize-cli": "^5.5.1"
Firstly, I created the .sequelizerc
file using touch .sequelizerc
command. And I changed the path for each directory. Instead of generating config/config.json
file, I need to tell sequelize-cli
to generate config/config.js
file so that it can access environment variables. So I changed config.json
to config.js
.
.sequelizerc
:
const path = require('path');
module.exports = {
'config': path.resolve('src/config', 'config.js'),
'models-path': path.resolve('src/db', 'models'),
'seeders-path': path.resolve('src/db', 'seeders'),
'migrations-path': path.resolve('src/db', 'migrations')
}
Then, I generated the config/config.js
using npx sequelize-cli init
command.
The generated config/config.js
:
{
"development": {
"username": "root",
"password": null,
"database": "database_development",
"host": "127.0.0.1",
"dialect": "mysql",
"operatorsAliases": false
},
"test": {
"username": "root",
"password": null,
"database": "database_test",
"host": "127.0.0.1",
"dialect": "mysql",
"operatorsAliases": false
},
"production": {
"username": "root",
"password": null,
"database": "database_production",
"host": "127.0.0.1",
"dialect": "mysql",
"operatorsAliases": false
}
}
It's not valid commonjs module, so I change it to:
require('dotenv').config();
module.exports = {
development: {
username: process.env.POSTGRES_USER,
password: process.env.POSTGRES_PASSWORD,
database: process.env.POSTGRES_DB,
host: process.env.POSTGRES_HOST,
port: process.env.POSTGRES_PORT,
dialect: 'postgres',
operatorsAliases: false,
},
test: {
username: process.env.POSTGRES_USER,
password: process.env.POSTGRES_PASSWORD,
database: process.env.POSTGRES_DB,
host: process.env.POSTGRES_HOST,
port: process.env.POSTGRES_PORT,
dialect: 'postgres',
operatorsAliases: false,
},
production: {
username: process.env.POSTGRES_USER,
password: process.env.POSTGRES_PASSWORD,
database: process.env.POSTGRES_DB,
host: process.env.POSTGRES_HOST,
port: process.env.POSTGRES_PORT,
dialect: 'postgres',
operatorsAliases: false,
},
};
I met this issue when I ran npx sequelize-cli db:create
command.
☁ node-sequelize-examples [master] ⚡ npx sequelize-cli db:create
Sequelize CLI [Node: 10.16.0, CLI: 5.5.1, ORM: 5.21.3]
Loaded configuration file "src/config/config.js".
Using environment "development".
(node:96656) [SEQUELIZE0004] DeprecationWarning: A boolean value was passed to options.operatorsAliases. This is a no-op with v5 and should be removed.
As the warning says, just remove the operatorsAliases
option from the config.js
. The final config/config.js
:
require('dotenv').config();
module.exports = {
development: {
username: process.env.POSTGRES_USER,
password: process.env.POSTGRES_PASSWORD,
database: process.env.POSTGRES_DB,
host: process.env.POSTGRES_HOST,
port: process.env.POSTGRES_PORT,
dialect: 'postgres',
},
test: {
username: process.env.POSTGRES_USER,
password: process.env.POSTGRES_PASSWORD,
database: process.env.POSTGRES_DB,
host: process.env.POSTGRES_HOST,
port: process.env.POSTGRES_PORT,
dialect: 'postgres',
},
production: {
username: process.env.POSTGRES_USER,
password: process.env.POSTGRES_PASSWORD,
database: process.env.POSTGRES_DB,
host: process.env.POSTGRES_HOST,
port: process.env.POSTGRES_PORT,
dialect: 'postgres',
},
};
Then, run npx sequelize-cli db:create
command again, the warning is gone.
☁ node-sequelize-examples [master] ⚡ npx sequelize-cli db:create
Sequelize CLI [Node: 10.16.0, CLI: 5.5.1, ORM: 5.21.3]
Loaded configuration file "src/config/config.js".
Using environment "development".
Database node-sequelize-examples created.
来源:https://stackoverflow.com/questions/58593200/deprecationwarning-a-boolean-value-was-passed-to-options-operatorsaliases-this