lunes, 25 de junio de 2018

Emacs: Hacer consultas a base de datos en org-mode

El modo Org-mode de emacs es una herramienta de productividad increíble. Bajo esta interface es posible realizar consultas a base de datos, el resultado de estas pueden mostrarse inline en el mismo archivo .org. Para esto debemos de configurar algunas cosas pequeñas en Emacs.

1. Vamos a modificar nuestro archivo .emacs y añadir los lenguajes soportados
(org-babel-do-load-languages
'org-babel-load-languages
'((sql . t)))
;; add additional languages with '((language . t)))

(org-babel-do-load-languages
'org-babel-load-languages
'(
(emacs-lisp . t)
(org . t)
(sh . t)
(C . t)
(python . t)
(gnuplot . t)
(octave . t)
(R . t)
(dot . t)
(awk . t)
(sql . t)
))

2. Para poder conectarnos a una BD nuestro archivo .org tendremos que añadir algunos tags:
#+name: result-list
#+header: :engine mysql
#+header: :dbhost localhost
#+header: :dbuser mydbuser
#+header: :dbpassword mydbpass
#+header: :database mydatabase
#+begin_src sql :exports results
select * from table1 order by 1 desc;
#+end_src

#+RESULTS: result-list

Como observamos debemos de cambiar los valores :
engine: el motor de base de datos, en nuestro caso usamos mysql
dbhost: el host de la base de datos, en nuestro caso localhost o 127.0.0.1
dbuser: el usuario de base de datos
dbpass: la clave del usuario de base de datos
database: la base de datos a la que nos conectamos
name: indica el nombre del bloque de consulta, si observan en RESULT hay uno con el mismo nombre, quiere decir que el resultado de ejecutar el SQL se verá en el bloque RESULT
begin_src: esta es la consulta SQL que ejecutaremos

Para ejecutar la consulta nos ubicamos dentro del bloque del código y presionamos Ctrl+c Ctrl+c.

Mayor detalle en : https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-sql.html

No hay comentarios: