Ejecución de consultas SQL en org-mode

Una de las cosas por la que me gusta usar org-mode es la posibilidad de usar código fuente de prácticamente cualquier lenguaje en él.

Particularmente hoy estuve haciendo unas pruebas sobre su uso con SQL y PostgreSQL. Para configurarlo hay que agregar las siguientes lineas a nuestro archivo .org:

:PROPERTIES:
:engine:   postgresql
:cmdline:  database -U user
:exports:  both
:END:

Y lo siguiente es probar que org puede realizar una conexión con la base de datos a simplemente realizando una consulta que va a depender de la estructura de la base de datos a la que queremos conectarnos. En mi caso, mi consulta de prueba sería la siguiente:

#+name my-query
#+begin_src sql
select nombre, fecha from public.videojuego limit 1;
# +end_src

La consulta se ejecuta tecleando C-c C-c y eso desplegará resultados como el que muestro a continuación:

| ┌────────┬────────────┐ |
|-------------------------|
| │ nombre │   fecha    │ |
| ├────────┼────────────┤ |
| │ Gears  │ 2015-04-16 │ |
| └────────┴────────────┘ |

Esta consulta la realicé a una de las bases de mis alumnos. Una vez entendido este pequeño ejemplo, lo utilizaré para explicar algunas cosas y manteniendo todas las herramientas que provee org-mode.

Anuncios

Herramientas para migraciones de bases de datos.

Existen diversos tipos de herramientas para realizar migraciones de bases de datos (Schema migration, database migration, database change management en inglés). Estas herramientas están diseñadas para administrar cambios incrementales y reversibles sobre esquemas de bases de datos relacionales.

Una migración sobre un esquema es realizada siempre que se necesite actualizar o revertir un cambio sobre un esquema de una base de datos relacional.

En este texto, mostraré las herramientas disponibles y de las más oídas para trabajar con migraciones para bases de datos.

Flyway

  • Herramienta desarrollada para interactuar con Java
  • Bases de datos soportadas:
    • Oracle
    • SQL Server
    • SQL Azure
    • DB2
    • MySQL
    • MariaDB
    • Google Cloud
    • PostgreSQL
    • Redshift
    • Otras…
  • Herramientas de Java con las que interactua
    • Maven
    • Gradle
    • Ant
  • 6 Comandos básicos
    • Migrate
    • Clean
    • Info
    • Validate
    • Baseline
    • Repair

Liquibase

  • Herramienta desarrollada para interactuar con Java
  • Bases de datos soportadas
    • MySQL
    • PostgreSQL
    • Oracle
    • SQL Server
    • Sybase
    • DB2
    • Apache Derby
    • Otras
  • Herramientas Java con las que interactua
    • Maven
    • Ant
  • Muchos comandos dependiendo de lo que se quiera hacer

Datical DB

  • Sin interacción directa con Java
  • Bases de datos soportadas
    • Oracle
    • DB2
    • MySQL
    • SQL Server
    • PostgreSQL
    • Otras
  • Muchos comandos dependiendo de lo que se quiera hacer. Similar a Liquibase.

Active Record (migrations)

  • Herramienta hecha con Ruby
  • Bases de datos soportadas
    • PostgreSQL
    • MySQL
  • Comandos basados en definir cosas en Ruby

Ruckusing-migrations

  • Herramienta hecha en PHP
  • Bases de datos soportadas
    • PostgreSQL
    • MySQL
    • Sqlite
  • Varios comandos basados en lo que se quiera hacer.

Phinx

  • Herramienta hecha en PHP
  • Bases de datos soportadas
    • MySQL
    • PostgreSQL
    • SQLite
    • SQL Server
  • Varios comandos basados en lo que se quiera hacer.

MyBatis Migrations

  • Framework de persistencia para Java.
  • Bases de datos soportadas
    • Cualquiera bajo JDBC
  • Configuración basada en SQL, Java y XML

Ragtime

  • Biblioteca para realizar migraciones de datos estructurados hecha en Clojure
  • Bases de datos soportadas
    • Cualquiera bajo JDBC
  • Configuración basada en SQL

Lobos

  • Biblioteca para realizar migraciones de bases de datos escrita en Clojure.
  • Bases de datos soportadas
    • H2
    • MySQL
    • PostgreSQL
    • SQLite
    • SQL Server
  • Configuración bajo clojure

Instalando PostgreSQL en openSuse

Primero:

$sudo zypper install postgresql postgresql-server pgadmin3

Iniciamos el servidor de postgreSQL:

$sudo /etc/init.d/postgresql start

Nos logueamos como el usuario postgres haciendo lo siguiente:

$sudo su postgres

$psql

Una ves adentro del shell de postgres tecleamos lo siguiente:

postgres=# alter user postgres with password 'postgres';

Si todo salió bien, entonces, el shell debe de mostrar un mensaje como el que sigue: ALTER ROLE

Y con eso se ha instalado postgreSQL en openSuse, ahora sólo les toca jugar con el!