0

我正在处理我的第一个 Rails 应用程序部署,当我使用 capistrano 部署时,来自本地计算机的数据库数据似乎没有加载到服务器上的数据库中。我不清楚 capistrano 是否会处理这个问题。我还尝试从 /current 发布目录运行 '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'

所以问题似乎是应用程序加载,但数据库没有填充表和数据。

我确定我错过了部署过程的一个相对基本的细节,但到目前为止它让我无法理解......任何帮助将不胜感激!谢谢。

4

1 回答 1

1

Capfile看起来像什么?

Rails 和 Capistrano 都不会将数据从您的开发环境复制到您的部署环境——<code>db:migrate:* 并且db:schema:*只处理数据库结构。在使用之前,rake db:schema:load请确保您的开发环境迁移已运行,并且您的最新版本db/schema.rb已签入您的存储库。

如果您希望某些数据在部署时出现在您的数据库中,请查看db/seeds.rb. 还有许多用于播种数据库数据的gem 。

于 2012-04-05T20:55:05.570 回答