"сервер рельсов" использует неверную базу данных - PullRequest
1 голос
/ 09 марта 2012

Недавно я переключил сравнительно новое приложение rails с sqlite3 на Amazon RDS и настроил мой файл database.yml на использование базы данных RDS только в производственной среде.

Но теперь, когда я пытаюсь выполнить любое локальноедействие над моей базой данных (например, rails server, rails console, rake db:migrate и т. д.) делает это действие с производственной БД на серверах Amazon, а не с моей локальной БД sqlite3, которая является моей БД для разработки.

# database.yml

development:
    adapter: sqlite3
    database: db/development.sqlite3
    pool: 5
    timeout: 5000

test:
    adapter: sqlite3
    database: db/test.sqlite3
    pool: 5
    timeout: 5000

production:
    adapter: mysql2
    host: mydb.mydbhost.us-east-1.rds.amazonaws.com
    reconnect: false
    database: mydb
    username: myusername
    password: mypassword

Что я делаю не так?

ОБНОВЛЕНИЕ: Вот мой файл environment.rb:

# environment.rb

# Load the rails application
require File.expand_path('../application', __FILE__)

# Heroku environment variables for local use
heroku_env = File.join(Rails.root, 'config', 'heroku_env.rb')
load(heroku_env) if File.exists?(heroku_env)

# Initialize the rails application
Myapp::Application.initialize!

Ответы [ 2 ]

0 голосов
/ 11 марта 2012

Разобрался с проблемой после дня, чтобы уйти от него. С моей стороны это глупая ошибка, но я решил опубликовать решение, если кто-то еще столкнется с подобной проблемой.

Как вы можете видеть из моего файла environment.rb выше, у меня есть файл heroku_env.rb, в котором содержатся все переменные окружения, относящиеся к моей герою, на моей локальной машине для целей разработки. В этом файле я объявил переменную ENV['DATABASE_URL'], которая ссылается на мою базу данных Amazon RDS. Удаление этого из файла решило проблему!

Спасибо всем, кто предложил ответы, чтобы помочь!

0 голосов
/ 09 марта 2012

Вы не используете настройки производства

Попробуйте

rails s -e production

или

RAILS_ENV=production rails s

RAILS_ENV=production rake db:migrate

...