Подтвердить что ты не робот

Как правильно настроить файл database.yml в Rails 4

Мне интересно, как правильно настроить мой database.yml файл в приложении Rails 4.

Это не то, что я действительно изучил в деталях, поскольку все это, похоже, просто работает при развертывании в Heroku, но я хочу понять это сейчас и заметил, что формат немного изменился с Rails 4.0 до 4.1. Например

4.0.2

development:
 adapter: mysql2
 encoding: utf8
 database: my_app_development
 pool: 5
 username: root
 password:

test:
 adapter: mysql2
 encoding: utf8
 database: my_app_test
 pool: 5
 username: root
 password:


production:
 adapter: mysql2
 encoding: utf8
 database: ymca_gym_production
 pool: 5
 username: root
 password:

4.1.0

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password:
  socket: /var/run/mysqld/mysqld.sock

development:
  <<: *default
    database: my_app_development


test:
  <<: *default
   database: my_app_test


 # On Heroku and other platform providers, you may have a full connection URL
 # available as an environment variable. For example:
 #
 #   DATABASE_URL="mysql2://myuser:[email protected]/somedatabase"
 #
 # You can use this database configuration with:
 #
 #   production:
 #      url: <%= ENV['DATABASE_URL'] %>
 #

 production:
   <<: *default
     database: my_app_production
     username: my_app
     password: <%= ENV['MY_APP_DATABASE_PASSWORD'] %>

Мои вопросы

  • Должен ли я устанавливать имена пользователей и пароли во всех средах?
  • Я использую ClearDB на Heroku в качестве моей базы данных. Должен ли я использовать url: <%= ENV['DATABASE_URL'] %> для производства, как показывают комментарии?
4b9b3361

Ответ 1

Вторая вычисленная вами база данных .yml фактически эквивалентна первой, она просто копирует значения из блока разработки.

Чтобы ответить на другие вопросы:

1) Должен ли я устанавливать имена пользователей и пароли во всех средах

вы можете, если хотите, или можете оставить его, как указано выше, где он принимает все учетные данные из одного блока.

2) Если я использую четкую БД с Heroku в качестве моей базы данных, тогда мне следует раскомментировать

heroku на самом деле полностью игнорирует этот файл (который в любом случае не должен быть проверен на исходный контроль). Heroku имеет свой собственный механизм обработки баз данных, о котором вы можете прочитать здесь: https://devcenter.heroku.com/articles/heroku-postgresql

По существу, относиться к базам "heroku" и локальным базам данных, которые вы определяете в этом файле, совершенно разные.