sequelize.js – 重新创建数据库

前端之家收集整理的这篇文章主要介绍了sequelize.js – 重新创建数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法如果不存在,可以使用连续创建数据库进行后续创建?

我有一个原始的MySQL实例,我收到这个错误

ER_BAD_DB_ERROR: Unknown database 'mytest'

我想处理这个错误,使用我提供的证书(或创建权限的另一组创建),然后运行CREATE DATABASE mytest.

解决方法

我可能有一个合理的解决方案.我相信它可以写得更干净.

对于这个例子,我使用的是Postgres,MysqL的答案会有所不同.我从这个答案中大量借用:node-postgres create database

在database.js中,我有以下init函数

var Sequelize = require('sequelize'),pg = require('pg');

module.exports.init = function(callback) {
    var dbName = 'db_name',username = 'postgres',password = 'password',host = 'localhost'

    var conStringPri = 'postgres://' + username + ':' + password + '@' + host + '/postgres';
    var conStringPost = 'postgres://' + username + ':' + password + '@' + host + '/' + dbName;

    // connect to postgres db
    pg.connect(conStringPri,function(err,client,done) { 
        // create the db and ignore any errors,for example if it already exists.
        client.query('CREATE DATABASE ' + dbName,function(err) {
            //db should exist now,initialize Sequelize
            var sequelize = new Sequelize(conStringPost);
            callback(sequelize);
            client.end(); // close the connection
        });
    });
};

init函数调用Sequelize之前创建数据库.它首先打开与postgres的连接并创建数据库.如果数据库已经存在,将抛出一个我们忽略的错误.一旦创建,我们初始化后续,并将其发送回回调.重要的是,如果数据库已经存在,则不会被覆盖.

在app.js中,我收到数据库实例并将其发送到需要的模块,在这种情况下它是护照.

require('./server/config/database.js').init(function(database) {
  require('./server/config/passport.js')(passport,database);
});
原文链接:https://www.f2er.com/js/154130.html

猜你在找的JavaScript相关文章