从Heroku恢复本地数据库后的ActiveRecord :: PendingMigrationError

时间:2014-01-03 15:51:32

标签: ruby postgresql heroku ruby-on-rails-4

当我使用此脚本将数据库下载到我的本地postgresql数据库时,我在Heroku上有一个应用程序(它是最新的并运行了最新的迁移):

heroku pgbackups:capture --expire --app myapp
echo "Captured database on heroku"
curl -o latest.dump `heroku pgbackups:url --app myapp`
echo "Downloaded database"
pg_restore --verbose --clean --no-acl --no-owner -h localhost -d cooking latest.dump
echo "Database restored"

我启动本地服务器时出现这样的错误:

的ActiveRecord :: PendingMigrationError 迁移正在等待中;运行'bin / rake db:migrate RAILS_ENV = development'来解决此问题。

我尝试删除并重置旧数据库而不做任何更改。

1 个答案:

答案 0 :(得分:4)

当数据库的版本(可通过Rails中的ActiveRecord::Migrator.current_version或带有SQL的select max(version) from schema_migrations访问)小于最高迁移版本(从db/migrate加载并且通常编码时)会发生此错误在该目录中文件的文件名中。

只要您以后使用Heroku版本替换它,在运行迁移或重置数据库时对数据库执行的操作无关紧要。此时,重要的是数据库内容与db/migrate中的迁移的比较。