因此,在开发过程中的某一点,我添加了一个迁移功能,将列添加到我的用户表中。此栏添加了“美元”属性。之后,我决定通过编写删除迁移来删除“美元”属性。后来我意外地删除了初始迁移来添加美元,所以为了解决运行db时出现的错误:迁移到本地SQLite数据库,我也删除了RemoveDollarsFromUsers
迁移。Ruby on Rails删除仍在Heroku上运行的迁移
貌似在我部署到heroku之前解决了这个问题。在用heroku pg:reset DATABASE
重置数据库后,我跑heroku run rake db:migrate
,并得到一个错误,说“美元”不是用户的属性。日志文件显示它曾尝试运行我以前删除的RemoveDollarsFromUsers迁移。
所以我再次检查我的回购是最新的,然后我试图完全重置并启动一个新的应用程序在heroku,也许heroku是记住旧的迁移。有了新的heroku应用程序,我得到了同样的错误,尽管我推送的回购应该没有任何参考文件。
这是一个混帐问题?我唯一能想到的就是git使用RemoveDollarsFromUsers迁移来推送旧版本,否则heroku甚至不知道它呢?
如果你做了'git status',你会得到什么?你确定删除了你提交删除的文件后吗? – fmendez
对不起,这是我第一次使用这个网站,我不知道如何做那些嵌入式代码窗口的人。当我运行git status的时候,它基本上给了我一个没有被提交的东西的清单,包括删除我正在谈论的文件。很明显,你正在做的事情。但是,即使在添加git之后。和git commit,它仍然说这些文件还没有被提交 –
您需要先将代码推送到heroku。推后,尝试重置数据库,然后运行迁移。 – jvnill