Игнорирование миграций после развертывания вызывает проблемы

У меня есть инстанс с несколькими сайтами, в котором не удалось выполнить миграцию нескольких баз данных из-за ошибки:

   PG::DuplicateColumn: ERROR:  column "bookmarkable_id" of relation "bookmarks" already exists

Возможно, мне стоит удалить этот столбец из соответствующей таблицы в этих базах данных?

Похоже, причина в том, что предыдущие миграции не были выполнены из-за установки переменной SKIP_POST_DEPLOYMENT_MIGRATIONS, и предыдущие миграции не были завершены.

Я удалю это, когда подтвержу, что это так…

@martin есть какие-то идеи, может быть, это связано с недавними рефакторингами?

Извините за ложную тревогу. Я так ненавижу, когда я так делаю.

Проблема заключалась в том, что я установил SKIP_POST_DEPLOYMENT_MIGRATIONS: 1, а затем не выполнил multisite:migrate. После того как я выполнил SKIP_POST_DEPLOYMENT_MIGRATIONS=- multisite:migrate, я смог выполнить загрузку.

Мне просто нужно исправить свои инструменты для мультисайта, чтобы они выполняли миграцию после запуска нового частично мигрированного контейнера.

Но странно. Recovering from failed/partially applied upgrade, похоже, сталкивается с той же проблемой, и это стандартная установка.

Я хотел бы ответить на этот пост, но решил, что это тот же симптом другой проблемы. :slight_smile: Честно говоря, я не знаю достаточно, чтобы подтвердить это в любом случае…

Похоже, это связано с DEV: Re-add polymorphic bookmark columns (#16261) · discourse/discourse@8040b95 · GitHub

Этот коммит является повторной реализацией 2f1ddadff7dd47f824070c8a3f633f00a27aacde,
которую мы откатили, так как она вызвала сбой во внутренней проверке CI. Я
разобрался в ситуации: проблема возникла потому, что старая миграция для добавления
столбцов закладок всё ещё существовала, а эти столбцы были удалены в ходе
пост-миграции, поэтому две миграции, добавляющие столбцы, конфликтовали
до выполнения пост-миграции.

Вау. Похоже, это всё объясняет.

Есть ли какие-то новости по этому вопросу?

У меня возникает та же проблема.

Как мне скопировать этот репозиторий git в Discourse?