Как узнать, были ли rake db:migrate и rake db:seed успешными

Ruby rake db:seed прерывается из-за ** Execute db:abort_if_pending_migrations, но я думаю, что все миграции прошли успешно.

Вот последняя часть вывода, когда я запускаю rake db:migrate --trace

    ** Invoke db:load_config (first_time)
    ** Execute db:load_config
    ** Execute db:migrate
    ** Invoke db:_dump (first_time)
    ** Execute db:_dump
    ** Invoke db:schema:dump (first_time)
    ** Invoke environment 
    ** Invoke db:load_config 
    ** Execute db:schema:dump

Я предполагаю, что это означает, что он был успешным (я не видел прерываний)?

Затем, когда я запускаю rake db:seed --trace, я получаю (вкратце):

    ** Invoke db:seed (first_time)
    ** Execute db:seed
    ** Invoke db:abort_if_pending_migrations (first_time)
    ** Invoke environment (first_time)
    ** Execute environment
    loading plugins

(плагины загружаются без ошибок) затем:

    ** Execute db:abort_if_pending_migrations

означает ли это, что миграция и семя работали правильно или нет? Спасибо за ваше время и вклад!


person rsmets    schedule 09.10.2013    source источник


Ответы (1)


Если это не прервалось, это удалось. Взгляните на код:

# desc "Raises an error if there are pending migrations"
task :abort_if_pending_migrations => :environment do
  pending_migrations = ActiveRecord::Migrator.open(ActiveRecord::Migrator.migrations_paths).pending_migrations

  if pending_migrations.any?
    puts "You have #{pending_migrations.size} pending #{pending_migrations.size > 1 ? 'migrations:' : 'migration:'}"
    pending_migrations.each do |pending_migration|
      puts '  %4d %s' % [pending_migration.version, pending_migration.name]
    end
    abort %{Run `rake db:migrate` to update your database then try again.}
  end
end

Он буквально ничего не делает, если нет ожидающих миграций.

person Nick Veys    schedule 09.10.2013