【问题标题】:Create a new table on sails在风帆上创建一个新表
【发布时间】:2016-04-05 14:24:22
【问题描述】:

我的问题很简单,但我在网上找不到答案。

我在一个项目 Sails/AngularJS 中,我只是想在调用特定路由时在 mysql 中创建一个新表。

之后好像不能用水线创建一个。

如果有人知道如何解决这个问题,我会很高兴。

问候。

【问题讨论】:

    标签: mysql sails.js waterline


    【解决方案1】:

    Waterline 不提供任何建表功能。

    方法一:

    但它提供了Model.query() 方法,您可以使用它来执行您想要的任何类型的查询。

    //TestController.js
    module.exports = {
        action1:function(req,res){
            var queryString='CREATE TABLE if not exists sailsusers.test (id INT NOT NULL,name VARCHAR(45) NULL,PRIMARY KEY (id))'
            Test.query(queryString,function(err,a){
                if(err)
                  return console.log(err);
                console.log(a,'\n',b);
                res.ok();
            });
        }
    };
    

    所以你可以这样做!

    方法 2:(丢失数据的风险,因此永远不要在生产中这样做)

    config/models.js 中添加以下内容。

       migrate: 'alter'
    

    每当您提升服务器时,将自动为每个模型创建一个表。但没有人建议在生产中这样做。

    这种方式不是首选。

    【讨论】:

    • 非常感谢您的回答。使用此 Model.query() 时,我想它不会为我添加 Rest API 吗?之后我可以从节点执行脚本调用来执行sails generate API test,你怎么看?
    • ails generate API test 仅生成 api(api/models/Test.jsapi/controllers/TestConteoller.js
    猜你喜欢
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多