nodejs数据库迁移模块

时间:2014-03-25 01:41:10

标签: database node.js migration

我正在寻找一个在node.js应用程序中迁移的好模块。我使用sequelize作为ORM。我已经找到了一些解决方案,例如sequelize本身的迁移,但我找不到足够的示例来添加列(更改架构)或将enteries添加到表中。

有人可以提供一个好的模块,其中包含一些很好的完整示例以及更改模式以及添加现有的Enteries吗?

我的应用程序托管在heroku上,您还可以强调如何在heroku上使用它吗?

由于

2 个答案:

答案 0 :(得分:4)

如果您在应用程序中使用sequelize,则可以而且应该使用sequelize进行迁移。该库具有处理迁移的出色文档。

在使用sequelize添加列方面,首先要通过命令行创建迁移。运行sequelize -c migration-name。一个例子可以是:sequelize -c add_location_to_users

运行此命令后,您将在根目录迁移文件夹中找到迁移文件。您可以在此处描述迁移应在数据库中更改的内容。为了与示例保持一致,这是一个示例方法。

migration.addColumn(
  'Users',
  'Location',
  DataTypes.STRING
)

运行此迁移会将带有数据类型字符串的“Location”列添加到“User”表中。

http://sequelizejs.com/docs/latest/migrations#functions此链接将带您进入sequelize提供的其他功能,包括更改列,重命名列,重命名表等。

在向表中添加条目方面,sequelize为您提供了在模型上运行create或findOrCreate的选项。以下是用户表的示例。

User.create({ name: 'foo', email: 'bar', location: 'New York' }).success(function(user) {
    console.log(user.location); //this prints the users location
})

然后您可以在success()的回调中访问用户(数据库中创建的条目),在那里我打印了上面的新用户位置。在文档的实例部分中,您将找到有关处理类实例(或“数据库中的条目”)的其他方法。

答案 1 :(得分:0)

如果您正在寻找一个完整的框架,Node on Fire包含一个非常好的迁移模块。看看https://github.com/martijndeh/fire

Node on Fire's Todo MVC example包含一些模型和迁移。更改任何模型并运行fire build只会生成任何新的迁移。 fire release会将您的迁移应用到您的数据库中。

Node on Fire的设计遵循12factor方法,这使得使用Node on Fire编写的应用程序成为在Heroku上部署的理想选择。

P.S。我是Node on Fire的主要贡献者,所以这个答案可能有偏见。