2017-07-14 42 views
0

我运行此sequelize代码node script.jsSequelizejs模式同步不返回

const Sequelize = require('./node_modules/sequelize') 
const sequelize = new Sequelize('postgres://user:[email protected]:5432/db') 

const customlayer = sequelize.define('customlayer', { 
    ogc_fid: { 
    type: Sequelize.INTEGER, 
    autoIncrement: true, 
    field: 'ogc_fid', 
    validate: {isInt: true}, 
    primaryKey: true 
    }, 
    wkb_geometry: { 
    type: Sequelize.GEOMETRY('POINT'), 
    field: 'wkb_geometry', 
    allowNull: false 
    }, 
    createdAt: { 
    type: Sequelize.DATE, 
    defaultValue: Sequelize.NOW 
    }, 
    updatedAt: { 
    type: Sequelize.DATE, 
    allowNull: true 
    } 
}) 

customlayer.sync({force: true}).catch(err => console.log(err.message)) 

它的工作原理(在日志输出和Postgres的表中创建没有错误),但它并没有恢复到正常的终端提示符...,所以我必须按Ctrl + C才能在终端中继续。由于我将此作为Ansible脚本的一部分使用,因此需要脚本才能返回以便Ansible可以继续。我怎样才能让它回归?

回答

0

要返回您需要手动关闭连接当你完成,如:

customlayer.sync({force: true}) 
    .catch(err => console.log(err.message)) 
    .finally(() => sequelize.close());