Неработающая база данных 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 ""

но когда я загружаю файлы в герою, и я вызываю службу снова, я получаю 404 не найден (ошибка) или 500 внутренних серверов (ошибка)

Я использую аддон cleardb соответствии с документацией.

Я думаю, что проблема заключается в базе данных. Сначала я написал свою базу данных.yml для создания информации о базе данных в соответствии со следующим:

$ heroku config | grep CLEARDB_DATABASE_URL

но я думаю, это не обязательно, потому что героику можно делать это автоматически в соответствии с этой строкой... Я так думаю

-----> 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
1 ответ

после некоторых отладок я обнаружил, что идентификаторы в heroku присваиваются каждому 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 использует циклическую репликацию для предоставления поддержки master-master MySQL. Таким образом, некоторые вещи, такие как ключи (или последовательности) auto_increment, должны быть настроены для того, чтобы один мастер не использовал тот же ключ, что и другой, во всех случаях. это путем настройки MySQL для пропуски определенных ключей и обеспечения использования MySQL для использования определенного смещения для каждого используемого ключа. Причина, по которой мы используем значение 10 вместо 2, предназначена для будущей разработки ".

Благодарю.

licensed under cc by-sa 3.0 with attribution.