Получение: "миграция отложена; запустите" bin / rake db: migrate RAILS ENV=development", чтобы решить эту проблему."после клонирования и миграции проекта

я клонировал свой проект. В комплекте с "bundle install", затем запустите"rake db:migrate". Я получаю эту ошибку: (когда я запускаю сервер rails и открываю свой браузер на localhost:3000) "миграции ожидаются; запустите" bin/rake db:migrate RAILS_ENV=development", чтобы решить эту проблему."

Я проверил все миграции один за другим, и все они были выполнены без ошибок. Также после выполнения "rake db:migrate"ошибок не обнаружено.

Это то, что я вижу, когда я выполнить "rake db:migrate: status"

Я нахожусь в среде разработки. Пожалуйста, дайте мне знать если вам нужна любая другая информация.

Я тоже пробовал "набор exec на грабли дБ:мигрировать", и "пачка exec на грабли дБ:миграция:перезагрузка" как "burninggramma" предложил.

любые подсказки, что вызывает ошибку?

13 ответов


интересные. Ты rake db: create? Предполагая, что вы используете sqlite3, сделайте следующее:

      rm -f db/*.sqlite3
      rake db:create
      RAILS_ENV=development rake db:migrate
      rails s -e development

кроме того, вы можете просматривать содержимое вашего конфигурация / база данных.в формате YML?

изменить: предупреждение! очевидно, вы потеряете ваши данные.


после запуска команды migrate у меня все еще была та же ошибка.

Что сработало для меня, так это просто остановить сервер rails и запустить его снова.


перечислите выполненные миграции с помощью rake db:migrate:status и посмотрите, была ли выполнена каждая миграция. Вы можете попытаться отменить миграцию с помощью rake db:abort_if_pending_migrations и повторите попытку миграции.


1. возможно, его значение по умолчанию в ruby2 / rails4, но вы пробовали:bundle exec rake db:migrate?

2. другой вариант будет сброс всей базы данных -используйте с осторожностью! сбрасывает все данные, а также - bundle exec rake db:migrate:reset

+) Я бы просто убедился, что вы выполняете все в той же разработке env:

RAILS_ENV=development bundle exec rake db:migrate:reset
RAILS_ENV=development bundle exec rails s

под управлением rake db:migrate RAILS_ENV=test сделал это для меня


У меня была такая же ошибка в браузере, но при внимательном просмотре сообщения об ошибке я заметил, что у меня было дополнительное пустое место в файлах комментариев и сообщений. Как только я снял его, он сработал идеально.


вот что сработало для меня: - gem установить рельсы-v 4.1.0 Внутри Файле: - gem 'rails', '4.1.0' (замените новый / старый с этим) Установить и обновить пакет - установка пакета - обновление пакета В вашем приложении.рубидий : Удалить / Comment-config.активная запись.raise_in_transactional_callbacks = true

запустить Bundle грабли: - bundle exec rake db: миграция Обновите страницу и ошибка должна исчезнуть.


две причины "db: migrate: reset" не работали для меня

1) loosing data 
2) we moved from php to rails, so we had an existing DB and the migrations were written on top of it not from the scratch

Итак, я попытался обновить таблицу "scheema_migrations" (mysql) со списком миграций(только значения версий), которые, я был уверен, уже запущены в моей БД(разработка), это может быть трудоемкий процесс, но он работает. Однако я бы не стал пытаться сделать это на производстве.


Я гадание ошибка в том, что вы создаете таблицу, которая уже существует, у меня была эта проблема раньше. Шаг 1 посмотрите на ошибку, когда вы сгребаете dv: migrate

Шаг 2 перейдите к модели, в которой создана эта таблица

Шаг 3 добавьте drop_table: [ваша таблица] прямо перед create_table: [ваша таблица]

Шаг 2 беговые грабли db: migrate

Шаг 3 удалите drop_table после завершения миграции


откройте базу данных и щелкните таблица schema_migration. Миграции будут перечислены ниже. enter image description here

сортировка столбца версия и найти последнюю миграцию, которую вы хотите вернуться. Удалить или вставить новый. Rails сохраняет всю историю миграции в этой таблице, поэтому вы можете настроить историю миграции по своему вкусу.


У меня была эта проблема, и это было потому, что у меня были файлы rails внутри папки с именем "[rails]". Похоже, рейку не нравятся следующие символы " []", используемые в имени папки.

надеюсь, это поможет другим с этой проблемой.


вы всегда можете запустить rake db: reset


когда я выполнил rake test и встретил баг :

"грабли прервана! ActiveRecord::PendingMigrationError: миграция находящийся на рассмотрении. Чтобы устранить эту проблему, запустите: bin/rake db: migrate RAILS_ENV=тест"

Я попытался и преуспел с:

rm -f db/*.sqlite3

rake db:create

RAILS_ENV=development rake db:migrate

rails s -e development