2012-05-11 183 views
0

我已經在heroku上運行並運行命令heroku open。它在瀏覽器中打開。但是當我點擊註冊按鈕時,它停止並提供以下heroku日誌。它完美地在本地服務器上工作。但我也想在heroku服務器上運行。這是如下示例http://ruby.railstutorial.org/chapters/sign-in-sign-out#sec:signin_successActiveRecord :: StatementInvalid ruby​​ on rails 3.2

2012-05-11T12:24:58+00:00 app[web.1]: Started GET "https://stackoverflow.com/users/new" for 122.179.134.45 at 2012-05-11 05:24:58 -0700 
2012-05-11T12:24:58+00:00 app[web.1]: Processing by UsersController#new as HTML 
2012-05-11T12:24:58+00:00 app[web.1]: Completed 500 Internal Server Error in 37ms 
2012-05-11T12:24:58+00:00 app[web.1]: 
2012-05-11T12:24:58+00:00 app[web.1]: :    SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull 
2012-05-11T12:24:58+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR: relation "users" does not exist 
2012-05-11T12:24:58+00:00 app[web.1]:     ON a.attrelid = d.adrelid AND a.attnum = d.adnum 
2012-05-11T12:24:58+00:00 app[web.1]:    WHERE a.attrelid = '"users"'::regclass 
2012-05-11T12:24:58+00:00 app[web.1]:    FROM pg_attribute a LEFT JOIN pg_attrdef d 
2012-05-11T12:24:58+00:00 app[web.1]:    AND a.attnum > 0 AND NOT a.attisdropped 
2012-05-11T12:24:58+00:00 app[web.1]:    ORDER BY a.attnum 
2012-05-11T12:24:58+00:00 app[web.1]:): 
2012-05-11T12:24:58+00:00 heroku[router]: GET demoapp3708.heroku.com/users/new dyno=web.1 queue=0 wait=0ms service=44ms status=500 bytes=643 
2012-05-11T12:24:58+00:00 app[web.1]: app/controllers/users_controller.rb:8:in `new' 
2012-05-11T12:24:58+00:00 app[web.1]: app/controllers/users_controller.rb:8:in `new' 

的Gemfile的:

source 'https://rubygems.org' 

gem 'rails', '3.2.3' 
gem 'bootstrap-sass', '2.0.2' 
gem 'jquery-rails', '2.0.0' 
#We’ll use the state-of-the-art hash function called bcrypt to irreversibly encrypt the password to form the password hash. 
gem 'bcrypt-ruby', '3.0.1' 
gem 'pg', '0.13.2' 

group :development do 
    gem 'rspec-rails', '2.9.0' 
    gem 'guard-rspec', '0.5.5' 
    gem 'capybara', '1.1.2' 
    gem 'annotate', '~> 2.4.1.beta' 
    gem 'sqlite3', '1.3.6' 
end 


group :test do 
    gem 'rspec-rails', '2.9.0' 
    gem 'capybara', '1.1.2' 
    gem 'guard-spork', '0.3.2' 
    gem 'spork', '0.9.0' 
    gem 'factory_girl_rails', '1.4.0'  
    #gem 'webrat', '0.7.1' 
end 

group :assets do 
    # gem 'execjs' 
    gem 'therubyracer', :platforms => :ruby 
    gem 'sass-rails', '~> 3.2.4' 
    gem 'coffee-rails', '~> 3.2.2' 
    gem 'uglifier', '>= 1.2.3' 
end 

應用程序/控制器/ users_controller.rb是:

class UsersController < ApplicationController 

    def show 
    @user = User.find(params[:id]) 
    end 

    def new 
    @user = User.new 
    end 

    def create 
    @user = User.new(params[:user]) 
    if @user.save 
     sign_in @user 
     flash[:success] = "Welcome to the Sample App!" 
     redirect_to @user 
    else 
     render 'new' 
    end 
    end 
end 

heroku上運行rake分貝後:遷移

PG::Error: ERROR: relation "users" does not exist 
: ALTER TABLE "users" ADD COLUMN "password_digest" character varying(255) 

回答

2

你是如何部署這段代碼的?數據庫遷移是部署腳本的一部分嗎?

否則你將不得不手動運行它們使用

heroku run rake db:migrate 
+0

德克斯特哦!是你!感謝您的回覆。讓我嘗試。它給出了以下錯誤: – vajapravin

+0

我每次修改Gemfile文件時都必須執行db:migrate嗎?我做了它,然後我改變了文件,但在改變文件和部署項目後,我得到了錯誤,不得不運行上面的命令。 – newguy

相關問題