Una de las tendencias actuales en cuanto a motores de bases de datos open source, es el creciente aumento en el uso de PostgreSQL para proyectos escalables y de gran envergadura. Muchas empresas están considerando migrar a PostgreSQL(si es que no lo han hecho aún) como alternativa a MySQL, ahora en manos de Oracle y con poco apoyo de parte de la comunidad, la cual se ha inclinado más hacia MariaDB.
En este post daré una reseña rápida de instalación y configuración de PostgreSQL sobre Ubuntu 12.04 LTS. Luego veremos como integrarlo con Rails.
Instalando PostgreSQL y PgAdmin3 en Ubuntu 12.04
Instalamos PostgreSQL y el paquete de desarrollo (Asegurate que sus repositorios de paquetes estén actualizados (sudo apt-get update) y si es necesario su sistema lo este también (sudo apt-get upgrade).$ sudo apt-get install postgresql-9.1 libpq-dev
Acontinuación, opcionalmente podemos instalar PgAdmin para tener una GUI de administración de PostgreSQL.
$ sudo apt-get install pgadmin3
Ahora crearemos un usuario y lo vincularemos con nuestra sesión de usuario
$ sudo su postgres -c psql postgres=# CREATE ROLE nombredeusuario SUPERUSER LOGIN; postgres=# \q
Algunos comandos de postgresql útiles:\d = nos muestra la lista de relaciones en nuestra base de datos
\d nombredetabla = nos muestra el diseño de la tabla dada
\? = para una completa lista de comandos
\h = para lista de comandos sql
\h nombredecomando = nos da información sobre un determinado comando sql
\q = para salir del cliente psql
Configuraciones en Rails
Configuramos nuestr Gemfile, por defecto nos configura SQLite3 como el gestor de base de datos por defecto y agrega la gema correspondiente, podemos comentar o eliminar esa parte y agrega la gema de PostgreSQL.# Quitar gema 'sqlite3' gem 'pg' #Agregando gema para PostgreSQLNos vamos a nuestro archivo de configuracion de bases de datos en /config/database.yml
development: adapter: postgresql encoding: unicode database: nombreapp_desarrollo pool: 5 timeout: 5000 username: nombredeusuario password: test: adapter: postgresql encoding: unicode database: nombreapp_pruebas pool: 5 timeout: 5000 username: nombredeusuario password:
Luego dejamos que el Bundler haga su magia:
$ bundle install
Por ultimo, en caso de que ya tuviéramos migraciones listas, creamos las migraciones y si es necesario las bases de datos tambien:
$ rake db:create:all $ rake db:migrate