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

hso*_*hso 2 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"
Run Code Online (Sandbox Code Playgroud)

然后我启动我的本地服务器,我收到这样的错误:

ActiveRecord::PendingMigrationError 迁移正在挂起;运行“bin/rake db:migrate RAILS_ENV=development”来解决这个问题。

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

Pet*_*vin 5

当数据库版本(可通过ActiveRecord::Migrator.current_versionRails 或select max(version) from schema_migrationsSQL 访问)低于最高迁移版本时,会发生此错误,因为从db/migrate该目录中的文件的文件名加载并通常在文件名中编码。

只要您之后用 Heroku 版本替换它,就运行迁移或重置数据库而言,您对数据库做了什么并不重要。在这一点上,重要的是您的数据库内容与db/migrate.