使用StrongLoop自动创建mysql表

gle*_*age 14 mysql schema node.js strongloop loopbackjs

我试图使用Strongloop与MySql,但无法弄清楚如何迁移或自动创建表到MySql数据库.

是否至少有一种方法可以将模型导出到MySql模式中,还是必须手动创建表格?

我一直在尝试使用mysql演示应用程序,并查看文档一段时间但没有运气 - http://docs.strongloop.com/display/DOC/MySQL+connector

谢谢!

jdu*_*hls 35

我创造了/server/boot/autoupdate.js.它在应用程序启动时运行.它加载"model-config"和"datasources"JSON,并将所有模型迁移或更新到为它们定义的数据源.

# /server/boot/autoupdate.js
module.exports = function(app) {
    var path = require('path');
    var models = require(path.resolve(__dirname, '../model-config.json'));
    var datasources = require(path.resolve(__dirname, '../datasources.json'));

    function autoUpdateAll(){
        Object.keys(models).forEach(function(key) {
            if (typeof models[key].dataSource != 'undefined') {
                if (typeof datasources[models[key].dataSource] != 'undefined') {
                    app.dataSources[models[key].dataSource].autoupdate(key, function (err) {
                        if (err) throw err;
                        console.log('Model ' + key + ' updated');
                    });
                }
            }
        });
    }

    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');
                    });
                }
            }
        });
    }
    //TODO: change to autoUpdateAll when ready for CI deployment to production
    autoMigrateAll();
    //autoUpdateAll();

};
Run Code Online (Sandbox Code Playgroud)


小智 12

您可以通过在app.start方法之前将以下行添加到server.js文件来简单地迁移模型:

app.datasources['mySqlConnection'].automigrate(['orders','customers', 'User', 'ACL'], function(err) {
     console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
  1. 根据需要将模型添加到阵列中.
  2. 运行应用程序slc run.

注意:mySqlConnection是连接名称,请使用您自己的连接名称替换它.


小智 9

要为您的模型更新和/或创建所有mysql表:

var dataSource = app.dataSources.mysql;       
dataSource.autoupdate(null, function (err) {
    if(err) return cb(err);
    return cb();
});      
Run Code Online (Sandbox Code Playgroud)

  • 你在哪里定义这段代码?在启动文件中?server.js?有关系吗?有会议吗? (6认同)

use*_*256 7

LoopBack称之为自动迁移.检查这些链接并搜索该术语:

LoopBack模型的配方,第5部分:与关系数据库进行模型同步

数据源和连接器

  • 虽然我想我应该指出我一遍又一遍地阅读这些文档,但无法弄明白.当使用datasources.json定义我的数据库连接器时,我很困惑在何处以及如何使用JS配置`ds.automigrate(schema_v1.name,function(){}` (2认同)