понедельник, 28 июля 2008 г.

Ruby on Rails. Настройка database.yml

Эта статья является дополнением к моей предыдущей публикации "Как связана модель и таблица в БД?". Для того чтобы успешно работать с БД, ActiveRecord должен получить ее описание. Дальше он сам подберет нужный для работы драйвер. Программист не должен заботится о том с какой базой даных он работает, единственное что он должен сделать - правильно настроить конфигурационный файл подключения к базе и создать саму базу в соответствующем редакторе (например SQL Manager for MySQL).

Откроем папку с проектом и найдем там файл \config\database.yml. Первоначально он имеет вид (я опускаю комментарии. Комментарием считается строка которая начинается с символа "#"):


development:
adapter: mysql
encoding: utf8
database: blogger
username: root
password: 123123
host: localhost

test:
adapter: mysql
encoding: utf8
database: TestApplication_test
username: root
password:
host: localhost

production:
adapter: mysql
encoding: utf8
database: TestApplication_production
username: root
password:
host: localhost

Здесь описаны подключения к трем БД:
  • тестовой(на которой прогоняют тесты)
  • БД разработчика(которая подключается к локально установленному проекту разработчика)
  • БД production(которая включается в релиз готового проекта)
Рассмотрим детально подключение к произвольной БД, так как параметры везде одинаковые:
  1. adapter: mysql - указывается база данных с которой предстоит работать
  2. encoding: utf8 - выбирается кодировка хранимых данных (следите чтобы она совпадала с кодировкой самого проекта)
  3. database: TestApplication_production - имя уже созданной базы данных
  4. username: root - логин админа БД
  5. password: - пароль админа БД (если он не пустой)
  6. host: localhost - хост БД, localhost указывет на то что работать предстоит на локальной машине
Теперь вам предстоит создать тестовую(test) и девелоперскую(
development) БД и прописать соответствующие параметры в database.yml. Базу данных для продакшина(production) можно закомментировать, так как она понадобится только после завершения проекта или выхода первого релиза.

К выбору имени БД тоже есть некоторые соглашения. Если вы планируете назвать вашу БД к примеру "my_database", то к имени тестовой БД принято добавлять суфикс "_test", а к девелоперской - "_development". В результате получим my_database_test и my_database_development соответственно.




3 комментария:

  1. не подскажет ли любезный автор начинающему, где можно глянуть перечень возможных параметров, конфигурируемых в database.yml? У меня нестандартная ситуация и необходимы тонкие настройки.

    ОтветитьУдалить
  2. Неплохой набор из двух статей можно прочитать здесь: http://www.unixfun.ru/archives/83 и здесь: http://www.unixfun.ru/archives/76

    Там на мой взгляд подробнее описана настройка PostgreSQL.

    ОтветитьУдалить