如何使用sqlite3创建新的bookshelf.js数据库文件?如果db文件存在,请连接到它;如果db文件不存在,则创建一个新的db文件。
谢谢
发布于 2014-06-20 04:29:49
在幕后,bookshelf使用knex (在当前版本中,您必须显式地使用它来实例化)。
如果在选项中将客户端设置为sqlite3,并且在connection对象(property filename)中指定有效路径,则它将根据需要进行连接或创建(警告:假设您已经读取/写入了文件目标)。
数据库文件不只是创建的原因是您必须先写-所以尝试创建一个模式(knex schema builder)。然后,您应该看到创建了该文件。
说得更清楚一点--以下是你要寻找的东西:
var path = require('path')
, fs = require('fs')
, knex = require('knex')
, bookshelf = require('bookshelf')
, dbFile = path.join(__dirname, 'app.db')
, db = null // bookshelf db instance
// init db
db = bookshelf(knex({
client: 'sqlite3'
, connection: { filename: dbFile }
}))
// create a schema if no db found
fs.exists(dbFile, function(exists) {
if (!exists) {
db.knex.schema.createTable('test_table', function(table) {
table.increments()
table.string('some_col')
})
}
})
// ... do other stuff here ...https://stackoverflow.com/questions/24136332
复制相似问题