Meteor - 重置数据库并创建init脚本

时间:2015-03-09 17:20:26

标签: mongodb meteor

我们正在开发Meteor应用程序,我们需要在创建后在Mongo数据库中随时提供一些数据。

例如,我们有一个名为Users的Mongo集合,我们希望从两个用户开始(例如JohnSusan)。我们不想手动执行此操作,因此在Mongo重置之后,如果这些数据由于脚本而自动添加到应用程序的Mongo数据库中会很棒。

什么是最好的"最精致的"如何实现这个目标?

2 个答案:

答案 0 :(得分:5)

第一个简单而且天真的解决方案是使用一些启动脚本,例如/dev/init_data.js

Meteor.startup(function() {
  if(typeof someCollection.findOne() === 'undefined') {
    someCollection.insert(...);
  }
});

但是这会进入部署...除非你 手动 (呃)在部署之前擦除/dev文件夹或者做一些其他丑陋的技巧代码处于非活动状态。我们根本不想要部署这些代码 因此,让我们使用调试package代替!

meteor create --package devinitdata

在新的package.js文件中:

Package.describe({
  name: 'devinitdata',
  ...
  debugOnly : true //!
});

您可以在package files中编写初始化代码,以便用各种混乱的数据填充您的收藏。

答案 1 :(得分:0)

如何使用以下内容创建db_init.js文件:

if (Meteor.isServer && (process && process.env && process.env.NODE_ENV === "development")) {
  Meteor.startup(function () {

    var newUser = {
        username: 'test',
        email: 'test@test.com',
        profile: {
            phone: '555-555-5555'
        },
        password: 'test'
    };

    Accounts.createUser(newUser);

  });
}

这可以与像percolatestudio / meteor-factory

这样的东西结合起来
相关问题