Comment créer un nouveau fichier de base de données sqlite3 en utilisant bookshelf.js? Si le fichier db existe, connectez-vous à lui; Si le fichier db n'existe pas, créez un nouveau fichier db.Créer sqlite db en utilisant bookshelf.js
Merci
Comment créer un nouveau fichier de base de données sqlite3 en utilisant bookshelf.js? Si le fichier db existe, connectez-vous à lui; Si le fichier db n'existe pas, créez un nouveau fichier db.Créer sqlite db en utilisant bookshelf.js
Merci
Sous le capot, bookshelf
utilise knex
(qui, dans la version actuelle, vous devez utiliser explicitement instancier).
Si vous définissez le client d'être sqlite3
dans les options, et que vous spécifiez un chemin valide dans l'objet connection
(propriété filename
), il se connecte ou créer au besoin (mise en garde: en supposant que vous avez lecture/écriture au fichier destination). La raison pour laquelle un fichier de base de données n'est pas simplement créé est que vous devez d'abord écrire - alors essayez de créer un schéma (knex schema builder). Ensuite, vous devriez voir le fichier est créé.
Pour être un peu plus explicite - voici le genre de ce que vous recherchez:
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 ...
Je pense que knex crée le fichier lors de la création de la connexion, de sorte que vous êtes probablement mieux utiliser 'createTableIfNotExists' – Mr5o1