如何初始化sails.js中的数据库?

How to initialize the database in sails.js?

如何在 Sails.js 中初始化我的数据库?我想解析一些大 XML 文件并将它们插入数据库,以便我的 Sails-API 可以处理请求。

我想通过 Waterline 插入数据,而不是使用 REST API。是否有机会创建管理命令(如在 Django 中),因此我可以执行类似 sails init-database 的操作,这将 运行 我的脚本解析 XML 并直接通过 Waterline 模型插入类?

我不能使用 bootstrap.js 来完成这种任务,因为我不想在每次扬帆时都创建数据库内容。是否有命令行参数,我可以在其中禁用 运行ning bootstrap.js?

您可以为此目的使用 bootstrap.js,只需在其中添加一些逻辑来测试您的 XML 数据是否已插入。类似的东西

module.exports.bootstrap = function(cb) {
  MyModelDefinedInXML.find({Afield : "A value I know"}).exec(function(err,res){
  if(err){ //manage it ;}   
  if(res.length>0){
          //skip
          cb();
      }else{
          //perform insert
          cb();
      }
  });
}

对于开发人员,您只需不设置 sails.config.models.migrate,因此如果您想重置所有内容,您可以选择选项“3”,以便 wipe/drop 数据库中的所有内容。

module.exports.bootstrap = function (cb) {
  Model.count().exec(function (err, count) {
    if (err) return cb(err);
    if (count > 0) return cb();

    Model.create(initdata).exec(cb);
  });
};