Ruby on Rails - Настройка базы данных

Перед тем, как начать с этой главы, убедитесь, что ваш сервер базы данных запущен и работает. Ruby on Rails рекомендует создать три базы данных - по базе данных для среды разработки, тестирования и производственной среды. По соглашению их имена должны быть -

  • library_development
  • library_production
  • library_test

Вы должны инициализировать все три из них и создать для них пользователя и пароль с полными правами чтения и записи. Мы используемroot ID пользователя для нашего приложения.

Настройка базы данных для MySQL

В MySQL мы используем rootID пользователя для нашего приложения. Сеанс консоли MySQL, в котором вы это делаете, выглядит примерно так:

mysql> create database library_development;
Query OK, 1 row affected (0.01 sec)

mysql> grant all privileges on library_development.*
to 'root'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Вы можете сделать то же самое для еще двух баз данных library_production и library_test.

Настройка database.yml

На этом этапе вам нужно сообщить Rails об имени пользователя и пароле для баз данных. Вы делаете это в файлеdatabase.yml, доступный в library\configподкаталог созданного вами приложения Rails. В этом файле есть разделы живой конфигурации для баз данных MySQL. В каждом из используемых вами разделов вам необходимо изменить строки имени пользователя и пароля, чтобы отразить разрешения для созданных вами баз данных.

Когда вы закончите, это должно выглядеть примерно так -

development:
   adapter: mysql
   database: library_development
   username: root
   password: [password]
   host: localhost
	
test:
   adapter: mysql
   database: library_test
   username: root
   password: [password]
   host: localhost
   
production:
   adapter: mysql
   database: library_production
   username: root
   password: [password]
   host: localhost

Настройка базы данных для PostgreSQL

По умолчанию PostgreSQL не предоставляет пользователей. Мы должны создавать новых пользователей. Используйте следующую команду, чтобы создать пользователя с именемrubyuser.

tp> sudo -u postgres createuser rubyuser -s

Если вы хотите создать пароль для нового пользователя, используйте следующую команду.

tp> sudo -u postgres psql

postgres=# \password rubyuser

Используйте следующую команду для создания базы данных library_development.

postgres=# CREATE DATABASE library_development OWNER rubyuser; 

CREATE DATABASE

Используйте следующую команду для создания базы данных library_production.

postgres=# CREATE DATABASE library_production OWNER rubyuser; 

CREATE DATABASE

Используйте следующую команду для создания базы данных library_test.

postgres=# CREATE DATABASE library_test OWNER rubyuser; 

CREATE DATABASE

Нажмите Ctrl+D завершить работу PosgreSQL.

Настройка database.yml

На этом этапе вам нужно сообщить Rails имя пользователя и пароль для баз данных. Вы делаете это в файлеdatabase.yml, доступный в library\configподкаталог созданного вами приложения Rails. В этом файле есть разделы живой конфигурации для баз данных PostgreSQL. В каждом из разделов вам необходимо изменить строки имени пользователя и пароля, чтобы отразить разрешения для созданных вами баз данных.

Когда вы закончите, это должно выглядеть следующим образом -

default: &default
   adapter: postgresql
   encoding: unicode
  
development:
   adapter: postgresql
   encoding: unicode
   database: library_development
   username: rubyuser
   password: <Password for rubyuser>

test:
   adapter: postgresql
   encoding: unicode
   database: library_test
   username: rubyuser
   password: <Password for rubyuser>
 
production:
   adapter: postgresql
   encoding: unicode
   database: library_production
   username: rubyuser
   password: <Password for rubyuser>

Что следующее?

В следующих двух главах объясняется, как моделировать таблицы базы данных и как управлять ими с помощью Rails Migrations.