Entre todos los motores de bases de datos disponibles, PostgreSQL es uno de los más populares. Es un sistema de bases de datos de código abierto muy conocido por su fiabilidad, características robustas y rendimiento. Debido a que PostgreSQL es una opción popular, es compatible con casi todos los principales frameworks web. Al igual que sus competidores MySQL y SQLite, PostgreSQL también tiene sus puntos fuertes y débiles.
Ruby on Rails es un framework web popular escrito en Ruby. Es un framework agnóstico de la base de datos, lo que significa que puede funcionar con una amplia variedad de bases de datos. Por defecto, Rails asume SQL para las funcionalidades de la base de datos. Sin embargo, también es compatible con la integración de PostgreSQL.
Este tutorial te guiará a través del proceso de configuración de PostgreSQL para tu aplicación Ruby on Rails.
Ruby on Rails y PostgreSQL
Tanto PostgreSQL como Ruby on Rails están disponibles en cualquier distribución UNIX/Linux. Deberían estar disponibles en los servidores de paquetes predeterminados.
Un método alternativo es usar RVM (Ruby Version Manager). Es una herramienta dedicada para gestionar instalaciones de Ruby on Rails. El beneficio de este enfoque es que RVM creará una instalación local de Ruby on Rails. También puede gestionar múltiples versiones de Ruby y cambiar entre ellas sin problemas. Aquí hay un tutorial que detalla los pasos de Instalación de Ruby on Rails con RVM en Ubuntu.
En cuanto a PostgreSQL, echa un vistazo a esta guía rápida sobre instalación y configuración de PostgreSQL en Ubuntu.
-
Instalación de RVM
El proceso de instalación de RVM es bastante sencillo, gracias al script de instalación que ofrece RVM. El script está diseñado para detectar automáticamente el sistema Linux, luego descargar e instalar todos los paquetes necesarios. Necesitamos las claves GPG de RVM para verificar los paquetes. Esto asegura que los paquetes recibidos no sean falsificados. Primero, añade las claves GPG de RVM:
|
1 |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |

Luego, ejecuta el script de instalación de RVM:
|
1 |
curl -sSL https://get.rvm.io | bash -s stable --rails |

Finalmente, verifica la instalación:
|
1 |
type rvm | head -n 1 |
-
Installing Rails
Ahora podemos usar RVM para instalar componentes adicionales. Instala el framework Rails usando RVM:
|
1 |
gem install rails |
-
Instalación de PostgreSQL
El siguiente paso requiere tener PostgreSQL preinstalado en el sistema. Por defecto, la forma más fácil de instalar PostgreSQL es usando el gestor de paquetes predeterminado. Está disponible para todas las principales distribuciones de Linux. Echa un vistazo a la página de descarga de PostgreSQL para conocer todos los métodos de instalación disponibles. En Ubuntu, los siguientes comandos configurarán el repositorio de PostgreSQL y lo instalarán de inmediato:
|
1 |
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' |

|
1 |
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - |

|
1 |
sudo apt update && sudo apt install postgresql -y |

Para habilitar el soporte de PostgreSQL, necesitamos instalar la pg gema. Permite interactuar con PostgreSQL desde el código Ruby:
|
1 |
gem install pg |
-
Configuración de PostgreSQL
Después de la instalación, configuraremos las herramientas que necesitaremos usar para nuestros proyectos. Primero, cambia al usuario de PostgreSQL:
|
1 |
su - postgres |
Accede a la consola de PostgreSQL:
|
1 |
psql |

En el contexto de PostgreSQL, ahora crearemos un nuevo rol (clásicamente conocido como usuario). PostgreSQL tiene su propio formato de roles y permisos. No olvides usar un nombre de usuario adecuado y una contraseña segura:
|
1 |
create role <username> with createdb login password 'password123'; |
Creación de una aplicación Rails
Dile a Rails que cree una nueva aplicación Rails configurada para usar PostgreSQL para la base de datos:
|
1 |
rails new <app_name> --database=postgresql |

Esto creará un nuevo directorio con el nombre de usuario de la aplicación. Rails generalmente espera que el nombre de usuario de la base de datos y el nombre de la aplicación sean el mismo. El siguiente paso es configurar la base de datos de Rails. El archivo de configuración se encuentra en la siguiente ubicación:
|
1 |
RAILS_ROOT/config/database.yml |
El archivo database.yml contiene los datos que describen la base de datos adecuada para el entorno actual de Rails. Como sugiere el nombre del archivo, utiliza YAML. YAML es un estándar de serialización de datos amigable para los humanos para todos los lenguajes de programación.
Por defecto, Rails espera diferentes bases de datos para diferentes entornos, por ejemplo, development, test, y production. Es útil en varias situaciones, por ejemplo, Rails vaciará y reconstruirá la base de datos de test cada vez que se ejecuta una prueba de Rails.
Aquí hay un ejemplo de database.yml que contiene las bases de datos de development y test :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
development: adapter: postgresql encoding: unicode database: dummyapp_development pool: 5 username: dummyapp password: password123 test: adapter: postgresql encoding: unicode database: myapp_test pool: 5 username: dummyapp password: password123 |

Ahora es el momento de aplicar los cambios. El siguiente comando preparará las bases de datos necesarias descritas en database.yml. Cada base de datos tendrá sus propios usuarios y tendrá tablas schema_migrations . La tabla es necesaria para la migración de datos y esquemas:
|
1 |
rake db:setup |
Este paso fallará si el archivo de configuración de PostgreSQL pg_hba.conf contiene configuraciones incorrectas. El archivo se encuentra en la siguiente ubicación:
|
1 |
sudo cat /etc/postgresql/13/main/pg_hba.conf |
La siguiente línea es el objetivo. En lugar de peer, el método de autenticación debería ser md5:
|
1 |
local all all peer |
Cambia la línea:
|
1 |
local all all md5 |

Para aplicar los cambios, debes reiniciar el servicio de PostgreSQL:
|
1 |
sudo systemctl restart postgresql |
Luego, vuelve a ejecutar la configuración de la base de datos:
|
1 |
rake db:setup |
Ejecutando Rails
Ejecutar el servidor de Rails requiere el siguiente componente adicional. Ten en cuenta que para esto, necesitas Node.js instalado (con yarn):
|
1 |
rails webpacker:install |

La aplicación Rails ahora debería estar lista para iniciarse. Inicia el servidor de Rails:
|
1 |
rails server |

El servidor debería ser accesible desde la siguiente URL. Llegará a la página de inicio de Rails:
|
1 |
http://localhost:3000 |
Para hacer que la página de inicio sea más emocionante, crea un scaffold:
|
1 |
rails g scaffold Post title:string body:text |

|
1 |
rake db:migrate |
Finalmente, inicia el servidor y navega a la URL nuevamente. Ahora podemos administrar publicaciones (crear, editar y eliminar publicaciones).
Reflexiones finales
Esta es una configuración básica de Ruby on Rails con PostgreSQL. Hay una guía de inicio oficial que te ayudará a utilizar más a fondo Rails. La aplicación de ejemplo que creamos utiliza PostgreSQL. De esta manera, puedes crear cualquier aplicación que utilice PostgreSQL para sus funcionalidades.
¡Feliz programación!


Comentarios
Aún no hay comentarios. Sea el primero.