Knex - уже в актуальном состоянии - PullRequest
1 голос
/ 09 июля 2020

Я борюсь с проблемой, связанной с миграциями в knex в производственной среде (heroku). Я внес некоторые изменения и создал 8 новых миграций для обновления модели. После создания новых миграций я достиг 47 файлов миграции. После загрузки изменений в Heroku я выполнил, как обычно, knex migrate:latest, и никакого эффекта не было. Я получил сообщение Already up to date.

Я решил взглянуть на таблицу knex_migrations, чтобы узнать, возможно, там что-то не так. В результате я вижу, что новые миграции не были записаны в эту базу данных (см. Рисунок для справки.

enter image description here

When we take a look at the migrations it looks like this:

enter image description here

Clearly we can see that knex was able to run "20200216191040_receiver_company.js" as last one.

When I take a look at the knex_migrations_lock table the only entry that is existing over there looks like this:

введите описание изображения здесь

Кто-нибудь знает, как заставить knex запускать миграции? Версия knex, которую я использую 0.16.3.

EDIT:

Я хочу добавить, что на локальном компьютере у меня нет проблем с запуском миграции. Кроме того, я проверил, присутствуют ли файлы миграции на сервере, и после получения текущего состояния нашего Heroku я могу увидеть все файлы миграции, которые не были выполнены.

1 Ответ

1 голос
/ 10 июля 2020

Если изменение миграции не реализовано в базе данных, вы можете попытаться вручную удалить запись миграции из knex_migrations или вашей таблицы миграций и попробовать повторно применить команду knex migrate:latest.

, но перед тем, как попробовать этот способ, обязательно сохраните резервную копию или сначала запустите ее на локальном компьютере или сервере разработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...