Как переключить базу данных Rails без необходимости миграции? - PullRequest
0 голосов
/ 08 января 2020

У меня есть приложение Rails, которое использует db my_database_development в моем config/database.yml:

development:
  <<: *default
  database: my_database_development

Работает правильно, когда я запускаю rails server.

Теперь я хочу использовать другое дБ, поэтому я меняю свой config/database.yml:

development:
  <<: *default
  database: my_prev_database

Теперь, когда я запускаю rails server, они дают мне ActiveRecord::PendingMigrationError. To resolve this issue, run: bin/rails db:migrate RAILS_ENV=development. Когда я запускаю эту команду, my_prev_database очищается. Я не хочу, чтобы это случилось. Я хочу использовать my_prev_database и все имеющиеся у него данные (которые я откуда-то скопировал)

Как эффективно переключать базы данных в Rails?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 09 января 2020

При переключении базы данных у вас будет новая таблица schema_migrations. В новой базе данных schema_migrations пусто, поэтому Rails будет думать, что у вас есть pending_migration. Я думаю, что вам нужно повторно мигрировать в вашей новой базе данных. Вы можете использовать некоторые функции, такие как дамп базы данных, чтобы перенести дату из старой базы данных в новую базу данных

0 голосов
/ 08 января 2020

Я не могу повторить проблему выше. (Не уверен, почему, может быть, я неправильно копировал свою базу данных.)

Также, возможно, было разрешено копировать таблицы по отдельности из my_prev_database в my_database_development

Примечание для устранения неполадок. похожие проблемы: комментаторы отметили, что - Запуск rails db:migrate не должен удалять данные базы данных

...