2017-07-14 40 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());