我有一些使用 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;
最佳答案
我不熟悉 Bookshelf
或 Knex
,但您尝试过吗?
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/