0
я следующий код в файл переноса:knex создать таблицу и вставить данные из массива
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)
Что мне здесь не хватает, пожалуйста?