我正在开发我的第一个rails应用程序部署,当我使用capistrano部署时,我的本地计算机上的数据库数据似乎没有被加载到服务器上的数据库中。我不清楚卡皮斯特拉诺是否会照顾这个。我还尝试从/ current release目录运行'rake db:schema:load'。这是我尝试在浏览器中加载应用程序(在远程网络服务器上)时会发生什么的日志。
Started GET "/" for XX.XX.XX.XX at 2012-04-04 13:26:46 -0700
Processing by PagesController#home as HTML
Completed 500 Internal Server Error in 3ms
ActiveRecord::StatementInvalid (Mysql::Error: Table 'project.users' doesn't exist: SHOW FIELDS FROM `users`):
app/models/user.rb:61:in `authenticate_with_salt'
app/helpers/sessions_helper.rb:50:in `user_from_remember_token'
app/helpers/sessions_helper.rb:13:in `current_user'
app/helpers/sessions_helper.rb:17:in `signed_in?'
app/controllers/pages_controller.rb:5:in `home'
所以问题似乎是应用程序加载,但数据库没有填充表和数据。
我确定我错过了一个相对基本的部署过程细节,但到目前为止,它让我感到惊讶......任何帮助都会非常感激!感谢。
答案 0 :(得分:1)
Capfile
看起来像什么?
Rails和Capistrano都不会将数据从开发环境复制到部署环境 - db:migrate:*
和db:schema:*
只处理数据库结构。在使用rake db:schema:load
之前,请确保您的开发环境迁移已经运行,并且您的最新db/schema.rb
已签入您的仓库。
如果您希望在部署时将某些数据放在数据库中,请查看db/seeds.rb
。播种数据库数据也有many gems。