我正在寻找一个在node.js应用程序中迁移的好模块。我使用sequelize作为ORM。我已经找到了一些解决方案,例如sequelize本身的迁移,但我找不到足够的示例来添加列(更改架构)或将enteries添加到表中。
有人可以提供一个好的模块,其中包含一些很好的完整示例以及更改模式以及添加现有的Enteries吗?
我的应用程序托管在heroku上,您还可以强调如何在heroku上使用它吗?
由于
答案 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的主要贡献者,所以这个答案可能有偏见。