如何脚本同步&使用Sequelize for node.js和Heroku Postgres的迁移操作?

时间:2013-11-23 17:52:37

标签: node.js postgresql heroku sequelize.js

Sequelize example建议在server.listen() app.js之前执行此操作,这似乎太有限了。

您如何编写更复杂的同步或迁移脚本?

1 个答案:

答案 0 :(得分:1)

在启动项目之前,将新项目与DB同步是一次性过程。数据库或与应用程序同步或不同步,因此请勿在Express中输入同步代码。使用所有sync.js和同步代码创建独立的models文件,并在运行Express应用之前运行它。

var Sequelize = require('sequelize');
var sequelize = new Sequelize(... {
  // dbs settings    
});

var User = sequelize.define('User', {
   name: Sequelize.STRING
});

var Post = sequelize.define('Post', {
    title: Sequelize.STRING,
    body: Sequelize.STRING
});

Post.belongsTo(User);
User.hasMany(Post);


User.sync({force: true}).success(function() {
    Post.sync({force: true}).success(function() {
        console.log('Everything was synchronized');
    });
});

然后运行Express app