Ага. Вот что произошло. Похоже, это потому, что мы оба использовали ИИ, и он оказался глупым и ленивым. Альтернативное объяснение — это просто невезение, но похоже, что Claude (это я использовал) не получает временную метку (НЕ КРУТО, Claude), а только дату, а затем добавляет счётчик, поэтому мы оба работали в один и тот же день.
Вот последние несколько выполненных миграций:
up 20260316000001 Create discourse citationwizard openalex api keys
up 20260316000002 Create discourse citationwizard api key daily snapshots
up 20260316071735 Rename automation api key scope resource
up 20260316071736 Rename ai api key scope resource
up 20260316071737 Rename data explorer api key scope resource
up 20260319000000 ********** NO FILE **********
up 20260319000001 Create discourse citationwizard user lookup events
up 20260319000002 Create discourse citationwizard citation wizard sessions
up 20260319033623 ********** NO FILE **********
up 20260319055039 ********** NO FILE **********
И плагин discourse-citationwizard (который поддерживает https://www.citationwizard.net/, инструмент для цитирования/ссылок для академиков) также выполнил миграцию в тот же день. Мне показалось, что эта миграция вызывает подозрения, но я не представлял, что могут возникнуть такие последствия…
Вот почему не может выполниться plugins/discourse-ai/db/migrate/20260319000001_create_ai_agent_mcp_servers.rb.
Мне не повезло, и моя миграция выполнилась первой (легче изменить мой код, чем ваш). Сейчас я пытаюсь посмотреть, могу ли я переименовать свои миграции в таблице миграций…