2014-03-25 51 views
2

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

有人可以给一个好的模块以及一些很好的完整的例子,以及改变模式以及添加现有的输入?

我的应用程序托管在heroku上,所以你可以请也强调如何使用它在heroku上?

感谢

回答

4

,如果你在你的应用程序中使用sequelize您可以而且应该使用您的迁移sequelize。该库有很好的处理迁移的文档。

就添加具有sequelize的列而言,首先通过命令行创建迁移。运行sequelize -c migration-name。一个例子可以是:sequelize -c add_location_to_users

运行此命令后,您会在根目录迁移文件夹中找到迁移文件。这就是描述数据库中迁移应该改变的地方。为了保持这个例子,下面是一个示例方法。

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

运行此迁移将在'用户'表中添加带有数据类型字符串的'位置'列。

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 
}) 

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

+0

非常感谢你的详细回答真的帮助我 – user2019726

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.我是Fire on Node的主要贡献者,所以这个答案可能有偏差。