Ruby on Rails: configuración de la base de datos

Antes de comenzar con este capítulo, asegúrese de que su servidor de base de datos esté funcionando. Ruby on Rails recomienda crear tres bases de datos: una base de datos para cada entorno de desarrollo, prueba y producción. Según la convención, sus nombres deberían ser:

  • library_development
  • library_production
  • library_test

Debe inicializar los tres y crear un usuario y una contraseña para ellos con privilegios completos de lectura y escritura. Estamos usando elroot ID de usuario de nuestra aplicación.

Configuración de base de datos para MySQL

En MySQL, estamos usando el rootID de usuario de nuestra aplicación. La sesión de la consola MySQL en la que haces esto se parece a:

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)

Puede hacer lo mismo con dos bases de datos más library_production y library_test.

Configurando database.yml

En este punto, debe informar a Rails sobre el nombre de usuario y la contraseña de las bases de datos. Haces esto en el archivodatabase.yml, disponible en el library\configsubdirectorio de la aplicación Rails que creó. Este archivo tiene secciones de configuración en vivo para bases de datos MySQL. En cada una de las secciones que usa, debe cambiar las líneas de nombre de usuario y contraseña para reflejar los permisos en las bases de datos que ha creado.

Cuando termines, debería verse algo así como:

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

Configuración de base de datos para PostgreSQL

De forma predeterminada, PostgreSQL no proporciona ningún usuario. Tenemos que crear nuevos usuarios. Utilice el siguiente comando para crear un usuario con el nombrerubyuser.

tp> sudo -u postgres createuser rubyuser -s

Si desea crear una contraseña para el nuevo usuario, utilice el siguiente comando.

tp> sudo -u postgres psql

postgres=# \password rubyuser

Utilice el siguiente comando para crear una base de datos library_development.

postgres=# CREATE DATABASE library_development OWNER rubyuser; 

CREATE DATABASE

Utilice el siguiente comando para crear una base de datos library_production.

postgres=# CREATE DATABASE library_production OWNER rubyuser; 

CREATE DATABASE

Utilice el siguiente comando para crear una base de datos library_test.

postgres=# CREATE DATABASE library_test OWNER rubyuser; 

CREATE DATABASE

prensa Ctrl+D para terminar PosgreSQL.

Configurando database.yml

En este punto, debe informar a Rails el nombre de usuario y la contraseña de las bases de datos. Haces esto en el archivodatabase.yml, disponible en el library\configsubdirectorio de la aplicación Rails que creó. Este archivo tiene secciones de configuración en vivo para bases de datos PostgreSQL. En cada una de las secciones, debe cambiar las líneas de nombre de usuario y contraseña para reflejar los permisos en las bases de datos que ha creado.

Cuando termine, debería verse como sigue:

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>

¿Lo que sigue?

Los siguientes dos capítulos explican cómo modelar las tablas de su base de datos y cómo administrar aquellas que usan Rails Migrations.