Как создать новый файл базы данных sqlite3 с помощью bookshelf.js? Если файл db существует, подключитесь к нему; Если файл db не существует, создайте новый файл db.Создать sqlite db с помощью bookshelf.js
Благодаря
Как создать новый файл базы данных sqlite3 с помощью bookshelf.js? Если файл db существует, подключитесь к нему; Если файл db не существует, создайте новый файл db.Создать sqlite db с помощью bookshelf.js
Благодаря
Под капотом bookshelf
использует knex
(который в текущей версии вы должны явно использовать для создания экземпляра).
Если вы установите клиент, чтобы быть в настройках sqlite3
и указать правильный путь в connection
объекта (свойство 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 ...
Я думаю, что knex создает файл при создании подключения, так что вы, вероятно, лучше использовать 'createTableIfNotExists' – Mr5o1