Пропустить текущие миграции, но применить будущие - PullRequest
1 голос
/ 31 мая 2019

ВОПРОС: Можно ли как-нибудь избежать текущих миграций на уже настроенной удаленной базе данных, а также разрешить применять к ней будущие миграции?

Контекст:

У меня есть приложение rails с множеством миграций, которое до сих пор использовало локальную базу данных postgres.Существует удаленная база данных postgres, которая ДОЛЖНА в основном соответствовать структуре моей локальной базы данных.

Когда я пытаюсь подключиться к нему, я получаю ошибку «отложенные миграции».Попытка запустить мою миграцию приводит к ошибкам в отношении уже существующих таблиц.

Я хочу пропустить все текущие миграции, но НЕ УВИДЕТЬ много похожих вопросов, которые я вижу, я хочу убедиться, что мои будущие миграции будут работать над этимудаленная база данных.

Редактировать:

Я последовал этому ответу:

Rails 4, как игнорировать ожидающие миграции

И вставил мойсобственный номер версии текущей схемы в таблицу schema_migrations для удаления базы данных.Но ожидающая миграция остается.

Я могу подтвердить, что попытка запустить миграцию выдает мне ошибку в уже существующей таблице.Эта таблица является ПЕРВОЙ миграцией после удаленной базы данных, которая ранее была последней версией в таблице схемы.Кажется, он игнорирует мою последнюю текущую версию.

1 Ответ

2 голосов
/ 31 мая 2019

Вы должны добавить все номера версий миграции, которые хотите игнорировать, к schema_migrations

Другая техника, которая также может быть применима - миграция с помощью чего-то вроде Squasher или вручную. Смысл в том, чтобы объединить все старые миграции, которые не нужно свернуть в одну.

...