GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar PostgreSQL con la aplicación Ruby on Rails

Aunque la base de datos predeterminada SQLite3 funciona muy bien con Ruby on Rails , no deberíamos usarlo en algunos casos. Por ejemplo, si una gran cantidad de usuarios acceden simultáneamente a su aplicación Rails, no se recomienda SQLite. Deberíamos probar bases de datos más robustas como MySQL o PostgreSQL, que brindan escalabilidad, concurrencia, centralización y control. Ya sabíamos cómo usar MySQL con la aplicación Rails . Hoy veremos cómo usar PostgreSQL con la aplicación Ruby on Rails en Ubuntu Linux.

Requisitos

Supongo que ya ha instalado la última versión de Ruby on Rails en su sistema Linux. De lo contrario, consulte la siguiente guía.

  • Cómo instalar Ruby On Rails en Linux

1. Instalar PostgreSQL

Para instalar PostgreSQL en Debian, Ubuntu y sus derivados, ejecute:

$ sudo apt install postgresql postgresql-contrib libpq-dev

Este comando instalará PostgreSQL junto con todas las dependencias requeridas. Aquí, el libpq-dev es una biblioteca de PostgreSQL que permite a los programas cliente pasar consultas al servidor backend de PostgreSQL y recibir los resultados de estas consultas. Esta biblioteca es necesaria para conectarse a PostgreSQL cuando configura una aplicación Rails.

Asegúrese de que el servicio postgresql esté iniciado y habilitado al inicio:

$ sudo systemctl start postgresql
$ sudo systemctl enable postgresql

Para ver el estado actual del servicio postgresql, ejecute:

$ systemctl status postgresql

1.1. Crear nuevo rol de base de datos

Necesitamos un usuario de base de datos dedicado (rol) para crear y configurar bases de datos o nuestra aplicación Rails.

Para crear un nuevo rol de base de datos en PostgreSQL, ejecute el siguiente comando desde su terminal:

$ sudo -u postgres createuser -s ostechnix -P

Aquí,

  • sudo -u postgres - le permite ejecutar el comando desde postgres cuenta.
  • createuser -s ostechnix - crear un nuevo rol llamado ostechnix con privilegios de superusuario.
  • -P - le solicita que ingrese la contraseña para el nuevo rol.

2. Use PostgreSQL con la aplicación Ruby on Rails en Linux

Para crear una nueva aplicación Rails llamada ostechnixapp y use PostgreSQL como su base de datos predeterminada, ejecute:

$ rails new ostechnixapp -d postgresql

Esto creará una aplicación Rails llamada ostechnixapp en un directorio llamado ostechnixapp e instale las dependencias de gemas que ya se mencionan en Gemfile usando bundle install .

Después de crear la ostechnixapp aplicación, cambie a su directorio:

$ cd ostechnixapp/

Edite el archivo de configuración de la base de datos de la aplicación:

$ vi config/database.yml

Bajo el default sección, agregue el rol de la base de datos PosgreSQL y su contraseña que creamos en el paso anterior:

[...]
default: &default
   adapter: postgresql
   encoding: unicode
   # For details on connection pooling, see Rails configuration guide
   # https://guides.rubyonrails.org/configuring.html#database-pooling
   pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
   username: ostechnix
   password: Password123#@!
[...]

Reemplace el nombre de usuario y su contraseña con los suyos propios. Presione ESC y escribe :wq para guardar y cerrar el archivo.

Ahora cree la nueva base de datos para su aplicación Rails usando el comando:

$ rake db:create

Esto creará dos bases de datos con el nombre de su aplicación Rails. Por ejemplo, si el nombre de la aplicación es ostechnixapp, creará ostechnixapp_development y ostechnixapp_test .

Created database 'ostechnixapp_development'
Created database 'ostechnixapp_test'

También puede verificar si las bases de datos se crearon correctamente desde PosgreSQL.

Inicie sesión en PosgreSQL:

$ sudo -u postgres psql

En el indicador de postgresql, ejecute \l para listar las bases de datos disponibles:

postgres=# \l

Salida de muestra:

                                       List of databases
            Name           |   Owner   | Encoding | Collate |  Ctype  |   Access privileges   
 --------------------------+-----------+----------+---------+---------+-----------------------
  ostechnixapp_development | ostechnix | UTF8     | C.UTF-8 | C.UTF-8 | 
  ostechnixapp_test        | ostechnix | UTF8     | C.UTF-8 | C.UTF-8 | 
  postgres                 | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | 
  template0                | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
                           |           |          |         |         | postgres=CTc/postgres
  template1                | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
                           |           |          |         |         | postgres=CTc/postgres
 (5 rows)
 postgres=# 

Salga del indicador de PostgreSQL ingresando \q .

postgres=# \q

Ahora inicie su servidor web Rails usando el comando:

$ rails server -b 0.0.0.0

Esto iniciará su aplicación Rails en el puerto predeterminado 3000 . Aquí, pasamos el argumento -b 0.0.0.0 para acceder a la aplicación Rails desde cualquier máquina en la red de área local.

Abra su navegador web y acceda a su página de prueba de Rails navegando a la URL:http://ip-address:3000 .

Si desea utilizar un puerto diferente, pase -p marca junto con el número de puerto como se muestra a continuación:

$ rails server -b 0.0.0.0 -p 8080

Ahora, se puede acceder a la aplicación Rails desde esta URL:http://ip-address:8080 .

3. Eliminar aplicación Rails

Si ha utilizado la base de datos predeterminada que es SQLite, puede eliminar la aplicación Rails simplemente eliminando su directorio de aplicaciones.

$ rm -fr ostechnixapp

Si usó PostgreSQL, primero debe eliminar las bases de datos relacionadas de su aplicación usando el comando:

$ rake db:drop

Y luego elimine el directorio de la aplicación:

$ rm -fr ostechnixapp

Conclusión

Ahora ya sabe cómo crear una aplicación Rails con PostgreSQL como base de datos. Como ya mencioné, si su aplicación está siendo utilizada activamente por una gran cantidad de usuarios, debe usar PostgreSQL o MySQL. Esto también puede ser útil cuando desee escalar la base de datos en el futuro, administre su base de datos desde un sistema de eliminación.

Lectura relacionada:

  • Configurar la conexión de la base de datos usando la variable de entorno en Rails

Linux
  1. Cómo uso Vagrant con libvirt

  2. Crear una aplicación de escritorio Linux con Ruby

  3. Cómo configurar un entorno para la aplicación Ruby on Rails

  4. Cómo instalar Ruby on Rails (RoR) con PostgreSQL en Ubuntu 16.04

  5. Cómo usar la exportación con Python en Linux

Cómo instalar Ruby on Rails en Debian 9

Cómo instalar Ruby on Rails en Debian 10

Cómo instalar Ruby on Rails en CentOS 7

Cómo instalar Ruby on Rails en CentOS 8

Cómo instalar Ruby on Rails en Ubuntu 16.04

Cómo instalar Ruby on Rails en Ubuntu 20.04 con RVM