Ruby rake db:由于执行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
这是否意味着迁移和种子正常工作? 谢谢你的时间和输入!
答案 0 :(得分:5)
如果它没有中止,它就成功了。拿一个look at the code:
# 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
如果没有任何待处理的迁移,它实际上什么都不做。