Knex не находит путь миграции с помощью модуля esm

#javascript #node.js #postgresql #knex.js #es6-modules

#javascript #node.js #postgresql #knex.js #es6-модули

Вопрос:

Я использую knex в версии 0.21.5, и я включил модуль esm. Он обычно создает миграцию (используя команду: yarn knex migrate: make * имя миграции * —esm) в пути к каталогу, но не выполняет их. С помощью команды knex migrate: list это отображается, даже если я создал миграцию:

 Using environment: development
FS-related option specified for migration configuration. This resets migrationSource to default FsMigrations
FS-related option specified for migration configuration. This resets migrationSource to default FsMigrations
No Completed Migration files Found. 
No Pending Migration files Found.

Done in 1.66s.

  

Конфигурационный Knexfile:

 import path from 'path';

export default {
  development: {
    client: 'pg',
    connection:
      'postgres:*link of database*',
    migrations: {
      directory: path.join(__dirname, '/src/database/migrations/'),
      loadExtensions: ['mjs'],
    },
  },
};
  

Ответ №1:

Я решил проблему, в этом случае расширения загрузки [‘mjs’] не работают, поэтому я удалил их, и это сработало, но вы должны поставить флаг — esm во всех выполняемых вами функциях, поэтому, если вы хотите создать миграцию, например, вам нужно запустить knex —esm migrate:сделать имя миграции

Ответ №2:

Для меня,

У меня есть комбинация Typescript и ESM ,

Я запустил его с помощью этого: node --loader ts-node/esm ./node_modules/.bin/knex migrate:latest

Ссылка: Проблема Knex