使用Bookshelf.JS反向工程数据库?

时间:2017-07-25 17:31:43

标签: bookshelf.js

从现有MySQL数据库生成书架模型对象的过程是什么?

examples on the Bookshelf.js site显示多个模型对象......

var knex = require('knex')({client: 'mysql', connection: 
process.env.MYSQL_DATABASE_CONNECTION });
var bookshelf = require('bookshelf')(knex);

var User = bookshelf.Model.extend({
    tableName: 'users',
    posts: function() {
        return this.hasMany(Posts);
    }
});

最接近Knex.js site的是提到迁移。但是,使用他们的语法...

$ npm install -g knex
$ npm install knex --save
$ npm install mysql --save
$ knex init
$ knex migrate:make knextest

...只生成一个空函数文件...

exports.up = function(knex, Promise) {

};

exports.down = function(knex, Promise) {

};

......这是有道理的,因为knex不是ORM。我想我最终到了这里因为Bookshelf没有提到任何工具。

在旁注中,我已检查了我的knexfile.js,并确保其配置有效:

development: {
  client: 'mysql',
  connection: {
    host : 'localhost',
    user : 'root',
    password : 'oogaboogs',
    database : 'knexdb'
  }
},

这不可能吗?对于现有数据库,手动创建数千个Model对象真的很糟糕。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用基于Yeoman的generator-bookshelf

创建模型非常简单:

$ yo bookshelf:model
? Table Name users
? idAttribute id
? Add a relationship? No