mysql - 使用 knex 和 bookshelf 创建数据库和模式的语法?

标签 mysql postgresql bookshelf.js knex.js

我有一些使用 knex 和 bookshelf 来设置 Sqlite3 数据库和表的工作代码。不过,它看起来不像我在书架网站上看到的那样。 This blog post似乎表明创建东西是 knex 的工作,但我在 Bookshelf 网站上也没有看到 Bookshelf.conn 内容。我可以使用类似这样的代码来创建 Postgres 数据库和表吗?

这是有效的代码(package.json 有 "knex": "~0.5.7"和 "bookshelf": "~0.6.4",目前它们都是 0.9):

var Bookshelf = require('bookshelf');
var path = require('path');

var db = Bookshelf.initialize({
  client: 'sqlite3',
  connection: {
    host: '127.0.0.1',
    user: 'your_database_user',
    password: 'password',
    database: 'database_name',
    charset: 'utf8',
    filename: path.join(__dirname, '../db/mydb.sqlite')
  }
});

db.knex.schema.hasTable('urls').then(function(exists) {
  if (!exists) {
    db.knex.schema.createTable('urls', function (link) {
      link.increments('id').primary();
      link.string('url', 255);
      link.string('base_url', 255);
      link.string('code', 100);
      link.string('title', 255);
      link.integer('visits');
      link.timestamps();
    }).then(function (table) {
      console.log('Created Table', table);
    });
  }

module.exports = db;

最佳答案

我不熟悉 BookshelfKnex,但您尝试过吗?

var db = Bookshelf.initialize({
  client: 'postgresql',
  connection: {
    host     : '127.0.0.1',
    user     : 'your_database_user',
    port     : '5432',
    password : 'your_database_password',
    database : 'myapp_test',
    charset  : 'UTF8_GENERAL_CI'
  }
});

关于mysql - 使用 knex 和 bookshelf 创建数据库和模式的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35091996/

相关文章:

postgreSQL fatal error 窗口

SQL隐藏技术?

java - 通过外部网关发送 SMS 的设计评论

php - PDO 事务不捕获异常

MySQL脚本用于删除 block 中的数据,直到低于id的所有内容都被删除

php - 如何在 Windows 中无需密码将 Laravel 应用程序连接到 MySQL

php - 在php中实现线程消息系统

javascript - 函数未定义,Bookshelf.js 模型函数未被识别为函数

postgresql - 如何使用 knex 和 postgresql 有条件地更新多行?

Javascript:为什么对象在新的 api 调用时没有得到初始化,而字符串变量却得到了初始化?