我可以通过弧形工具的作曲家迁移模型,我可以在我的应用程序中编写一个小的node.js脚本,将模型自动迁移到我的MySQL数据库,配置为数据源,但我真的很喜欢简单地从slc命令行输入内容,作为我从命令行创建进程的一部分来迁移我的模型。例如:
slc loopback:migrate --datasources=server/datasources.json --model-config=server/model-config.json --datasource=mymysqldb
答案 0 :(得分:1)
您可以通过在 /server/bin/automigrate.js
中创建脚本来实现var path = require('path');
var app = require(path.resolve(__dirname, '../server'));
var models = require(path.resolve(__dirname, '../model-config.json'));
var datasources = require(path.resolve(__dirname, '../datasources.json'));
function autoMigrateAll(){
Object.keys(models).forEach(function(key) {
if (typeof models[key].dataSource != 'undefined') {
if (typeof datasources[models[key].dataSource] != 'undefined') {
app.dataSources[models[key].dataSource].automigrate(key, function (err) {
if (err) throw err;
console.log('Model ' + key + ' migrated');
});
}
}
});
}
autoMigrateAll();
使用命令
运行cd toYourProjectFolder
节点服务器/ bin / automigrate.js
确保您的 datasource.json 配置了MySQL 并应用于model-config.json
干杯
答案 1 :(得分:0)
你还不能从slc loopback命令行工具那样做。请随时在https://github.com/strongloop/loopback/issues提交功能请求。
目前,你必须创建一个简单的脚本来调用automigrate
命令,就像你一直在做的那样。
答案 2 :(得分:0)
我有多种类型的数据库(连接器),所以我制作了适合我的脚本:
var path = require('path');
var app = require(path.resolve(__dirname, '../server'));
var dataSources = require(path.resolve(__dirname, '../datasources.json'));
autoUpdateAll();
// ------------------------------------
function autoUpdateAll(){
Object.keys(dataSources).forEach(function(dataSourceName) {
var dataSourceObj = app.dataSources[dataSourceName];
if(!dataSourceObj) return;
dataSourceObj.autoupdate(function(err, result) {
if(err) return console.error(err);
console.log('Datasource ' + dataSourceName + ' update (autoupdate();)');
});
});
}