【发布时间】:2013-09-27 04:51:40
【问题描述】:
我刚接触 Meteor 和 Mongo 几个小时,来自 Rails 背景并试图了解迁移的工作原理 - 或者不了解?
我有一个server/bootstrap.js 文件,用于播种一些数据:
// if the database is empty on server start, create some sample data.
Meteor.startup(function () {
if (Users.find().count() === 0) {
var userData = [
{ name: 'Cool guy' },
{ name: 'Other dude' }
];
for (var i = 0; userData.length; i++) {
var userId = Users.insert({
name: userData[i].name
});
}
}
});
似乎每次我想更改数据库,比如添加一个新字段时,我都必须运行 meteor reset 让它接收更改。
但是,如果我通过我想要保留的 UI 创建记录或其他数据会怎样?在 Rails 中,使用 MySQL 或 PostgreSQL,我会创建一个迁移来创建新字段,而不会破坏整个数据库。
这如何与 Meteor 和 Mongo 一起使用?还考虑了从开发到生产推出新变化的情况。谢谢!
-- 更新:2013/09/24--
显然,Mongo 的无模式特性减少或消除了迁移的需要。在我的情况下,修改userData 以添加新字段在它最初运行后将不起作用,因为用户计数检查 - 这就是我继续运行meteor reset 的原因。我需要在这里重新考虑我的方法并学习。
也就是说,有些项目使用迁移,例如 Telescope:https://github.com/SachaG/Telescope/blob/master/server/migrations.js
我还发现http://try.mongodb.org/ 上的教程很有用。
【问题讨论】: