如何初始化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);
});
};
如何在 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);
});
};