我試圖在我的node.js應用程序中使用knex。我正在跟着一個教程,並在某個時候創建了一個表,但無法重複這個過程。我刪除了表並刪除了所有的遷移文件夾。在這一點上,我重新開始,但創建新的遷移後,然後運行knex migrate:latest
我得到一個錯誤,說遷移目錄已損壞,因爲我有原始遷移丟失。在我的Node.js應用程序中使用Knex.js刪除遷移
我的印象是,如果文件丟失,它應該不知道它曾經存在。
什麼是從我的項目中刪除遷移的正確方法?
knexfile.js
development: {
client: 'pg',
connection: {
host: '127.0.0.1',
user: 'postgres',
password: 'password',
database: 'myDatabase'
},
pool: {
min: 10,
max: 20
},
migrations: {
directory: __dirname + '/db/migrations'
},
seeds: {
directory: __dirname + '/db/seeds/development'
}
db.js
var config = require('../knexfile.js');
var env = 'development';
var knex = require('knex')(config[env]);
module.exports = knex;
console.log('Getting knex');
knex.migrate.latest([config]);
console.log('Applying migration...');
運行這給了錯誤,
knex migrate:latest
Using environment: development
Error: The migration directory is corrupt, the following files are missing: 20161110130954_auth_level.js
但這種遷移並不存在,因爲我刪除它。
爲了刪除遷移,我最終進入數據庫並刪除與遷移相關的行,然後刪除與之關聯的js文件。 – wuno