после импорта postgres из heroku, rails локально навязывает запуск миграции базы данных - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь импортировать свою базу данных из heroku обратно в локальную. Следуя командам на heroku , я могу импортировать всю базу данных локально.

Однако Rails отвечает, что у меня отложенная миграция и что я должен запустить bin/rails db:migrate RAILS_ENV=development. Это терпит неудачу, потому что таблицы уже существуют.

На геройку:

heroku pg:info --app my_app
 ›   Warning: heroku update available from 7.22.7 to 7.24.4.
=== DATABASE_URL
Plan:                  Hobby-dev
Status:                Available
Connections:           0/20
PG Version:            11.2

, локальный:

psql (PostgreSQL) 11.3

ActiveRecord::Migrator.current_version возвращает => 20190608070435 и db/schema.rb содержит:

ActiveRecord::Schema.define(version: 2019_06_10_061746)

Замена этой версии версией ActiveRecord :: Migrator.current_version также не помогает.

Не знаю, откуда эта проблема. После импорта из Heroku у меня есть правильная база данных локально, но rails видит ожидающую миграцию.

1 Ответ

1 голос
/ 14 июня 2019

Rails использует таблицу schema_migrations для отслеживания миграций.Эта проблема может возникнуть, если соответствующая запись миграции отсутствует и rails пытается запустить миграцию.Но это терпит неудачу, так как у вас уже есть таблица в вашей локальной БД.

Если вы уверены, что у вас есть новейшая / обновленная база данных локально, вы можете запустить миграцию, но закомментировав код (то есть в процессе миграции).ПРИМЕЧАНИЕ: убедитесь, что вы комментируете только код создания таблицы

Например,

class <your migraton name> < ActiveRecord::Migration[4.2]
  def change
    # commented out code
  end
end

Таким образом, Rails обновит таблицу schema_migrations в правильной версии и больше не будет вас раздражать (Rails предполагаетвы создали таблицу).

Затем раскомментируйте файл миграции.

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