我在迁移文件中有以下代码:
import knex from 'knex'
import filterWordsArray from '../seeds/filter_words'
const tables = ['filter_words'];
export async function up(knex) {
await knex.schema.createTable('filter_words', (t) => {
t.uuid('id').primary().defaultTo(knex.raw('uuid_generate_v4()'));
t.string('word');
}).then(function () {
return knex("filter_words").insert(
filterWordsArray
);
})
return Promise.resolve();
};
export async function down(knex) {
for (let table of tables) {
await knex.schema.dropTable(table);
}
return Promise.resolve();
};
包含filterWordsArray
的文件包含以下内容:
export const filterWordsArray = [
{
word: "something"
},
{
word: "rather"
},
{
word: "filter"
},
{
word: "another"
},
. . .
];
我运行knex migrate:latest
,没有错误。
$> knex migrate:latest
Using environment: development
Batch 3 run: 1 migrations
.../migrations/23460417191457_add_filter_words.js
$>
但是当我查看数据库时,表已创建,但没有插入数据。
所以这是一个Postgresql数据库;如果我要手动插入数据,我会去:
mydb=# insert into filter_words(word) values ('something');
mydb=# select * from filter_words;
id | word
--------------------------------------+-----------
2ab8f5d0-ce20-41c2-a0e9-49cbe1b4bd3b | something
(1 row)
我在这里想念的是什么?
答案 0 :(得分:0)
好的,我找到了一种让它工作的方法,不确定它是否是唯一的/最好的。将导入更改为:
import {filterWordsArray} from '../seeds/filter_words'