如果没有sequelize.sync(),则创建mssql数据库的方法?"/>
如果没有sequelize.sync(),则创建mssql数据库的方法?
如果没有一个数据库,我正在尝试使用sequelize创建数据库;我使用以下代码创建了初始迁移。
const env = process.env.NODE_ENV || 'development';
const {database, username, password, dialect} = require(__dirname + '/../config/config.json')[env];
module.exports = {
up: (queryInterface, Sequelize) => {
const sequelize = new Sequelize("", username, password, {
dialect: dialect,
});
return sequelize.query(`CREATE DATABASE '${database}';`);
},
down: (queryInterface, Sequelize) => {
queryInterface.dropDatabase(database);
}
};
然后在index.js文件中调用它。
sequelize.sync({ force: true })
.then(() => {
console.log(`Database & tables created!`)
});
当我尝试运行它时,出现以下错误“未处理的拒绝SequelizeAccessDeniedError:用户'sa'登录失败。”
但是,如果我使用SQLPro创建数据库,则连接不会出现问题。
回答如下:我找不到通过续集来做到这一点的方法;但是,我可以使用mssql npm模块来解决它。这是我的解决方案:
//code in my index.js for sequelize
const config = require(__dirname + '/../config/config.json')[env];
const mssql = require('mssql');
//set up connection
const pool = new mssql.ConnectionPool({
user: config.username,
password: config.password,
server: 'localhost',
});
//create database if one does not exist
pool.connect(error => {
if(error) {
console.log(error);
} else {
pool.query(`IF DB_ID('${config.database}') IS NULL CREATE DATABASE ${config.database}`);
}
});
如果您可以使用续集做类似的事情,我仍然很感兴趣。如果有人找到了仅使用续集的方法,请告诉我。
谢谢!
更多推荐
如果没有sequelize.sync(),则创建mssql数据库的方法?
发布评论