Подтвердить что ты не робот

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

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

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

[[email protected] 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

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

[[email protected] 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.

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

[[email protected] working_ror]# rake db:migrate RAILS_ENV=development
[[email protected] working_ror]# 

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

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

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

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

4b9b3361

Ответ 2

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

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

Ответ 3

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

config.active_record.migration_error = false #: page_load

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

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

rails db:environment:set RAILS_ENV=test

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

rake db:schema:load RAILS_ENV=test

а затем

bundle exec rake db:migrate

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