私はNodeJSアプリケーションベースをSQLite上に持っています。私の問題は、DBが起動時に初期化されていないということです。テーブルは作成されませんが、クエリは正常に実行されます(このようなテーブルエラーはありません)。 ここに私のconfig.jsの内容です。このファイルは、データベースが必要なときに呼び出されます。NodeJSとKnex - テーブルが自動的に作成されない
var config = require('../../config');
var bcrypt = require('bcrypt-nodejs');
var knex = config.knex;
knex.schema.createTableIfNotExists('users', function(table) {
table.increments();
table.string('name', 128);
table.string('username', 128);
table.string('password');
//table.string('email', 128);
//table.string('role').defaultTo('admin');
table.timestamps();
});
//var bookshelf = config.bookshelf;
var bookshelf = require('bookshelf')(knex);
bookshelf.plugin('registry');
var User = bookshelf.Model.extend({
tableName: 'users',
...
私はデータを取得または作成する任意のメソッドを呼び出すようにしようとすると、私はテーブルが存在しないというエラーが発生している:
私のuser.jsの中に今var knex = require('knex')({
client: 'sqlite3',
connection: {
filename: "db.sqlite"
},
useNullAsDefault: true
});
//var bookshelf = require('bookshelf')(knex);
//bookshelf.plugin('registry');
module.exports = {
"port": process.env.PORT || 3000,
"secretKey": "MyOwnSecretKey",
"knex": knex
//"bookshelf": bookshelf
};
は、私は次のようにこれを呼び出していますファイル。テーブルの作成部分をserver.jsファイルに移動しましたが、テーブルを作成しませんでした(ただし、デバッグではそれを表示する必要があります)。 ここにキャッチは何ですか?あるいは、これを使ってテーブルを作成するより良い方法がありますか?
これです、それは動作します。私は実際に最後の提案を得ることはありませんが、私はそれに取り組んでいきます。ありがとう。 – smoczyna