Ruby on rails rake db:migrate如何在Heroku上工作?

Ruby on rails rake db:migrate如何在Heroku上工作?,ruby-on-rails,heroku,rake,Ruby On Rails,Heroku,Rake,在我推到Heroku并运行rake db:migrate后,我的应用程序崩溃了。但是这个错误没有意义 ActionView::Template::Error (undefined method `email_address' for #<Invite:0x000000065fb788>): 因此,我最终发现它在应用程序重启后(heroku restart)仍然有效。好交易 然而,我对rakedb:migrate现在是如何工作的感到困惑。其他每次迁移都会在不重新启动的情况下获取相应的

在我推到Heroku并运行
rake db:migrate
后,我的应用程序崩溃了。但是这个错误没有意义

ActionView::Template::Error (undefined method `email_address' for #<Invite:0x000000065fb788>):
因此,我最终发现它在应用程序重启后(heroku restart)仍然有效。好交易

然而,我对
rakedb:migrate
现在是如何工作的感到困惑。其他每次迁移都会在不重新启动的情况下获取相应的模型属性


在Heroku上运行
rake db:migrate
时会发生什么是什么促使应用程序选择新的模型属性?为什么这次不工作?

在新的rails应用程序中,您可以看到以下内容

…/config/environments/development.rb

# In the development environment your application's code is reloaded on
# every request.  This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false
…/config/environments/production.rb

# Code is not reloaded between requests
config.cache_classes = true

我不认为会是那样。通常,当您在Heroku上运行
rake db:migrate
时,无论设置为什么,它都会拾取更改(如OP所说)。因此,可能这就是导致生产重新加载类的原因,但有一个错误,rename_列不会触发设置…我也曾在Heroku上遇到过这种情况-您使用过吗heroku控制台上的“heroku运行rake db:migrate”?我实际上在heroku控制台上使用了
`rake db:migrate`
,这绕过了我不拥有应用程序的事实,因此没有正常的rake权限(即
heroku运行rake db:migrate
).在Heroku控制台上使用backticks绕过权限是我发现的一种黑客行为,我希望他们不会修复。;)
# Code is not reloaded between requests
config.cache_classes = true