0

我一直在嘗試部署我的本地應用程序在生產Heroku的生產數據庫無法正常工作

的Gemfile

source 'https://rubygems.org' 
ruby '2.0.0' 

gem 'pry', '0.9.12' 
gem 'mysql', '2.9.1' 
gem 'rails-api', '0.1.0' 
gem 'rails', '4.0.1' 
gem 'awesome_print', '1.1.0' 

group :test, :development do 
    gem 'raddocs', '0.2.0' 
    gem 'rspec-rails', '2.13.0' 
    gem 'rspec-core', '2.13.1' 
    gem 'rspec_api_documentation', '1.0.0' 
end 

group :development do 
    gem 'railroady', '1.1.1' 
end 

group :test do 
    gem 'database_cleaner' 
    gem 'capybara', '2.1.0' 
    gem 'shoulda-matchers', '1.5.6' 
    gem 'factory_girl_rails', '4.0' 
    gem "factory_girl", "4.0" 
end 

我在我的路線文件的下一個路由:

post '/region/:id/service' => 'region#service' 

和我的控制器看起來像這樣:

class RegionController < ApplicationController 
    def service 
    region = Region.find params[:id] 
    render text: region.name 
    end 
end 

好了,問題是,當我撥打服務與發展curl完美的作品:

$ curl -X POST localhost:port/region/6/service -d "" 

但是當我將文件上傳到Heroku的,我又撥打服務 我越來越404未找到(錯誤)500內部服務器(誤差)

我根據the documentation使用cleardb插件。

我認爲問題是數據庫。起初,我寫我的的database.yml生產環境按照以下數據庫信息:

$ heroku config | grep CLEARDB_DATABASE_URL 

,但我覺得是不是因爲neccesary的Heroku可以根據這條線自動做...我認爲如此

-----> Writing config/database.yml to read from DATABASE_URL 

我試過兩種方式沒有結果,我真的不知道爲什麼服務崩潰時,我嘗試做生產查詢。

的database.yml看起來像

development: 
    adapter: mysql 
    password: xxx 
    database: myapp.development 
    pool: 5 
    timeout: 5000 

test: 
    adapter: mysql 
    password: xxx 
    database: myapp.test_1 
    pool: 5 
    timeout: 5000 

production: 
    adapter: mysql 
    encoding: utf8 
    database: xxx 
    username: yyy 
    password: zzz 
    pool: 5 
    timeout: 5000 
    host: us-cdbr-east-04.cleardb.com 
+0

請發表您的日誌,以便我們可以看到您的錯誤和調試從那裏。 – bacongobbler

+0

只是一個猜測,但我認爲你將不得不刪除默認的postgres數據庫插件。 – phoet

回答

1

一些(1)調試後,我發現,在Heroku上的ID分配每10個號碼,例如我的表的一個區域看起來:

+----+-----------+-------+---------------------+---------------------+ 
| id | name  | state | created_at   | updated_at   | 
+----+-----------+-------+---------------------+---------------------+ 
| 1 | Brasil |  1 | 2014-01-08 13:12:56 | 2014-01-08 13:12:56 | 
| 11 | Chile  |  1 | 2014-01-08 13:12:56 | 2014-01-08 13:12:56 | 
| 21 | Peru  |  1 | 2014-01-08 13:12:56 | 2014-01-08 13:12:56 | 
| 31 | Argentina |  1 | 2014-01-08 13:12:56 | 2014-01-08 13:12:56 | 
+----+-----------+-------+---------------------+---------------------+ 

「ClearDB使用循環複製來提供主 - 主MySQL的支持,因此必須配置某些東西,例如auto_increment keys(或sequence),以便一個master不使用與另一個master相同的密鑰, SES。我們通過配置MySQL來跳過某些鍵,並通過強制MySQL爲每個使用的鍵使用特定的偏移量來實現這一點。爲什麼我們使用的10,而不是2的值的原因是爲未來的發展。」

感謝。

相關問題