Heroku运行rake db:migrate命令不会更新数据库

时间:2016-01-14 12:00:00

标签: ruby-on-rails git heroku database-migration migrate

我正在使用railstutorial.org阅读cloud IDE第2章(关于toy_app)并且我遇到了问题。我是新手,所以我很欣赏一个简单的解释和解释我做错了什么。

  1. 我按照教程中的描述执行了每一步:我创建了我的'hello world'索引页面,我把它推到了heroku。我也重命名了我的heroku网站(教程中没有要求)。那一刻一切都很好。
  2. 我添加了用户和微博模型。我已经启动了一个本地服务器(在第二个终端上输入rails server -b $IP -p $PORT)并添加了一些用户和微博。同样,一切都按预期工作。
  3. 我没有关闭本地服务器。我对git进行了更改,然后将其推送到Bitbucket然后再推送到heroku。最后,我输入了heroku run rake db:migrate。这是本教程的最后一步。
  4. 一切似乎都没问题,但我注意到我在本地服务器上添加的帖子和用户在我的heroku网站上看不到。由于我没有关闭我的本地服务器,我检查了它,我创建的帖子仍然可用。正如我所说,我的heroku网站上的情况不同。

    在此过程中我没有收到任何错误,在输入git push后只发出一条警告:Warning: Permanently added the RSA host key for IP address ... to the list of known hosts。下次它没有显示出来。

    在我第一次尝试每一步之后,我得到了很有希望的输出。在第二次和下一次尝试后,它返回

    On branch master
    Your branch is up-to-date with 'origin/master'.
    
    nothing to commit, working directory clean`
    

    Everything up-to-date
    

    所以还是没什么可担心的。

    我尝试重新启动服务器,在关闭本地服务器后再次执行这些步骤,但它没有帮助。我搜索了解决方案,但只有我发现的是大量错误或不同问题的问题。

    实际上,这是我可以同意的问题,因为我不需要在此阶段更新它,但我想听听答案并找出heroku是否有问题或者是正常行为或者即使是新手的失明。

1 个答案:

答案 0 :(得分:1)

首先,您的本地数据库和heroku数据库是不同的。除非您使用公共数据库,否则在本地应用程序上创建的任何用户都将无法在heroku应用程序上使用。

rake db:migrate,以其最基本的形式,只为尚未运行的所有迁移运行change或up方法。如果没有这样的迁移,它就会退出。它将根据迁移日期按顺序运行这些迁移。

尝试在heroku应用上创建用户和帖子,它应该可以正常工作。