Cómo usar PostgreSQL con su aplicación Ruby on Rails en Ubuntu 20.04

Cómo usar PostgreSQL con tu aplicación Ruby on Rails en Ubuntu 20.04

Introducción

Hoy en día, las aplicaciones web se han vuelto omnipresentes, facilitando nuestra vida de innumerables maneras. Sin embargo, detrás de cada aplicación web hay una base de datos que almacena y administra los datos cruciales que impulsan sus funcionalidades. PostgreSQL es un potente sistema de gestión de bases de datos relacionales (RDBMS) que ha ganado popularidad entre los desarrolladores de Ruby on Rails debido a su confiabilidad, escalabilidad y conjunto de funciones completo. Este tutorial te guiará paso a paso sobre cómo integrar PostgreSQL con tu aplicación Ruby on Rails en Ubuntu 20.04.

Requisitos previos

* Un sistema Ubuntu 20.04 actualizado
* Ruby 2.7 o posterior
* Rails 6.1 o posterior
* Un editor de texto o un entorno de desarrollo integrado (IDE)

Instalación de PostgreSQL

1. Instalar PostgreSQL

Comienza instalando PostgreSQL usando el siguiente comando:

Bash
sudo apt update
sudo apt install postgresql

2. Crear un usuario de PostgreSQL

Para interactuar con la base de datos, crea un usuario de PostgreSQL dedicado:

Bash
sudo -u postgres createuser -P --interactive

3. Configurar el acceso remoto (opcional)

Si necesitas acceder a la base de datos de forma remota, edita el archivo /etc/postgresql/14/main/postgresql.conf y agrega la siguiente línea:

Bash
listen_addresses = '*'

Reinicia PostgreSQL para aplicar los cambios:

Bash
sudo systemctl restart postgresql

Instalación del adaptador de Postgres para Rails

1. Agrega la gema a tu Gemfile

Agrega la gema pg a tu Gemfile:

Ruby
gem 'pg'

2. Instalar la gema

Ejecuta el siguiente comando para instalar la gema:

Bash
bundle install

Configuración de la base de datos en Rails

1. Crea un archivo de configuración de la base de datos

Crea un archivo llamado config/database.yml en tu aplicación Rails:

config/database.yml

default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000

development:
<<: *default
database: myapp_development

test:
<<: *default
database: myapp_test

production:
<<: *default
database: myapp_production
username: myapp
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>

Asegúrate de reemplazar myapp con el nombre real de tu base de datos y myapp_development, myapp_test y myapp_production con los nombres de las respectivas bases de datos.

2. Migrar la base de datos

Ejecuta el siguiente comando para crear las tablas necesarias en tu base de datos:

Bash
rails db:migrate

Conexión a la base de datos en Rails

En tus modelos y controladores de Rails, puedes utilizar el método ActiveRecord::Base.connection para conectarte a la base de datos. Por ejemplo:

Ruby

app/models/user.rb

class User < ApplicationRecord
def self.all_active
ActiveRecord::Base.connection.execute("SELECT * FROM users WHERE active = true")
end
end

Administración de PostgreSQL

1. Conectarse al shell de PostgreSQL

Puedes conectarte al shell de PostgreSQL usando el siguiente comando:

Bash
psql -U postgres

2. Crear una nueva base de datos

Para crear una nueva base de datos, ejecuta el siguiente comando:

Bash
CREATE DATABASE myapp;

3. Eliminar una base de datos

Para eliminar una base de datos, utiliza el siguiente comando:

Bash
DROP DATABASE myapp;

Conclusión

Integrar PostgreSQL con tu aplicación Ruby on Rails en Ubuntu 20.04 es un proceso sencillo que amplía las capacidades de almacenamiento y administración de datos de tu aplicación. Implementar los pasos descritos en este tutorial te permitirá aprovechar el poder de PostgreSQL, garantizando el almacenamiento seguro, el acceso eficiente y la manipulación fiable de datos para tu aplicación.

Preguntas frecuentes

1. ¿Puedo usar PostgreSQL con otras versiones de Rails?

Sí, PostgreSQL es compatible con varias versiones de Rails, incluidas versiones anteriores. Sin embargo, se recomienda utilizar la última versión de Rails para aprovechar las últimas funciones y mejoras de seguridad.

2. ¿Cómo puedo establecer una conexión segura a mi base de datos PostgreSQL?

Puedes establecer una conexión segura utilizando SSL. Consulta la documentación de PostgreSQL para obtener más información sobre cómo habilitar SSL.

3. ¿Cuál es el propósito de la gema pg?

La gema pg actúa como un adaptador entre Rails y PostgreSQL, lo que permite a las aplicaciones Rails interactuar con bases de datos PostgreSQL.

4. ¿Puedo usar PostgreSQL en otros sistemas operativos además de Ubuntu?

Sí, PostgreSQL está disponible para múltiples sistemas operativos, incluidos macOS, Windows y varias distribuciones de Linux.

5. ¿Existe un límite en el tamaño de la base de datos PostgreSQL?

No, PostgreSQL no tiene un límite teórico en el tamaño de la base de datos. Sin embargo, las consideraciones prácticas, como el hardware y el rendimiento, pueden afectar el tamaño máximo de la base de datos.

6. ¿Cómo puedo optimizar el rendimiento de mi base de datos PostgreSQL?

La optimización del rendimiento de PostgreSQL implica ajustar diferentes parámetros, como el tamaño del búfer compartido, el número máximo de conexiones y las configuraciones de almacenamiento en caché.

7. ¿Cuáles son las ventajas de usar PostgreSQL sobre otros DBMS?

PostgreSQL ofrece varias ventajas, como soporte ACID completo, tipos de datos avanzados, replicación y alta disponibilidad, lo que lo convierte en una opción confiable para aplicaciones de misión crítica.

8. ¿Puedo ampliar mi base de datos PostgreSQL en el futuro?

Sí, PostgreSQL admite el escalado horizontal y vertical, lo que te permite ampliar tu base de datos para satisfacer las crecientes demandas de datos.