Миграции находятся на рассмотрении; run 'bin/rake db: migrate RAILS_ENV = development' для решения этой проблемы [не удалось продолжить]

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

Я выполнил следующее,

[tims@web2 working_ror]# rails generate model Homepage first_name:string  last_name:string email:string message:text
  invoke  active_record
  create    db/migrate/20131119203948_create_homepages.rb
  create    app/models/homepage.rb
  invoke    test_unit
  createtest    /models/homepage_test.rb
  createtest    /fixtures/homepages.yml

Затем я продолжил миграцию,

[tims@web2 working_ror]# rake db:migrate
==  CreateHomepages: migrating ================================================
-- create_table(:homepages)
   -> 0.0493s
==  CreateHomepages: migrated (0.0494s) =======================================

однако, когда я запускаю свое приложение, я вижу следующее сообщение:

Migrations are pending; run 'bin/rake db:migrate RAILS_ENV=development' to resolve this issue.

но, если я запустил выше,

[tims@web2 working_ror]# rake db:migrate RAILS_ENV=development
[tims@web2 working_ror]# 

и сообщение продолжается...

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

rake db: drop rake db: создать rake db: migrate

и результаты одинаковы.

+17
19 нояб. '13 в 21:05
источник поделиться
6 ответов

Вам нужно сделать

bundle exec rake test:prepare 

или

bundle exec rake db:test:prepare

а затем

bundle exec rake db:migrate

перед запуском спецификаций

Приветствия

процитировано: Почему я попросил запустить rake db: migrate RAILS_ENV = test?

+24
17 дек. '13 в 13:18
источник

вы можете сделать

bundle exec rake test:prepare 

В Rails 4.1+ они устарели db: test: подготовить Теперь вы можете просто использовать:

ActiveRecord::Migration.maintain_test_schema!

Если вам нужно сделать это вручную

rake db:schema:load RAILS_ENV=test

а затем

bundle exec rake db:migrate
+4
19 апр. '15 в 8:20
источник
другие ответы

Связанные вопросы


Похожие вопросы

попробовать В RAILS_ROOT/config/environment/development.rb Установите следующий параметр равным false:

config.active_record.migration_error = false #: page_load

+3
17 авг. '15 в 15:16
источник

Один странный трюк, который вы можете использовать, когда ваши миграции закручены (файл удален, переименован вручную и т.д.)

  • Запустите свой любимый инструмент администрирования DB (например, PGAdmin3) и перейдите к соответствующей базе данных.
  • Найдите таблицу под названием schema_migrations и просмотрите ее содержимое. Он должен иметь один столбец под названием version. Это поле используется Rails для проверки актуальности переходов.
  • Убедитесь, что временные метки миграции соответствуют данным в этом столбце. Если вы удалили более старую миграцию, удалите соответствующую метку времени.
+1
19 апр. '15 в 8:48
источник

Убедитесь, что таблица еще не существует:

  • тип - рельсы dbconsole
  • type -.tables(проверьте, была ли ошибка во время рейка db: migrate, у которой есть имя таблицы like - create_table (: test) rake aborted!)
  • Если вы видите имя таблицы после запуска .tables в типе консоли - drop table TABLENAME;
  • Затем вернитесь к ветке и запустите команду rake db: migrate снова.
0
03 июл. '17 в 18:46
источник

вот что я сделал:

rails db:environment:set RAILS_ENV=test

Если вам нужно сделать это вручную

rake db:schema:load RAILS_ENV=test

а затем

bundle exec rake db:migrate

Спасибо Ахмеду Али....... ваш комментарий был полезен.

-1
29 нояб. '17 в 14:42
источник

Посмотрите другие вопросы по меткам или Задайте вопрос