Como ya comenté en el artículo sobre gestión de bases de datos, las posibilidades que nos ofrece un motor de bases de datos como SQLite para nuestro trabajo diario son excepcionales. En muchas ocasiones realizamos trabajos repetitivos que podrían ser resueltos fácilmente utilizando las herramientas adecuadas. Y de la misma manera, es fácil tener la información repetida en diferentes lugares. Un claro ejemplo es la agenda de contactos; podemos tener una en nuestro teléfono móvil, otra en nuestro cliente de correo electrónico del trabajo y otra en en el cliente de correo de casa. ¿No es mas cómodo tener una sola?. ¿Y si tuviéramos una sola?. Si todos los contactos los tienes en una base de datos, puedes conectar SQLite y LibreOffice y mandar un correo electrónico a todos, o cualquier otro tipo de acción masiva, sin tener que estar haciendo la operación uno por uno. Si además, esto lo tienes que hacer todas las semanas o meses, te podrías ahorrar una considerable cantidad de tiempo, pudiendo dedicarlo a otro asunto, es decir, en pocas palabras, siendo mas productivo.
En este artículo, comento como conectar SQLite y LibreOffice, pero se puede hacer de igual manera con cualquier otra motor de base de datos como MariaDB o PostgreSQL.
Conectando SQLite y LibreOffice
Base
Pero, ¿porque conectar SQLite y LibreOffice, si la suite ofimática dispone de Base?. Base es la interfaz de base de datos que viene integrada en LibreOffice. Base tiene su propio motor de base de datos relacional HSQL, y guarda los datos en el propio archivo de Base. Pero además, Base nos permite crear tablas, consultas, formularios e informes de forma sencilla, y en el caso de que lo necesites, mediante un asistente.
Sin embargo, si queremos dar una solución mas amplia, en la que integrar mas servicios o una solución mas general, debemos recurrir a un motor de bases de datos que nos permite comunicarnos con otros sistemas de forma mas sencilla.
¿Esto quiere decir abandonar Base?. No, en modo alguno. Si ya dominas o conoces Base, puedes seguir funcionando exactamente igual como hasta ahora, salvo que debes establecer una conexión entre SQLite y LibreOffice. Una vez realizada esta conexión, podrás utilizar las bases de datos de SQLite como si estuvieran en Base, pero respaldadas por su propio motor.
La conexión SQLite y LibreOffice
Evidentemente para poder conectar el motor de base de datos y la suite ofimática, necesitaremos tener el propio motor de base de datos instalado. En el caso de que no lo tuvieras, ejecuta las siguientes órdenes en un terminal,
sudo apt install sqlite sqlite3
Por otro lado, para conectar SQLite y LibreOffice, necesitaremos ODBC, que es un interfaz que permite comunicarse con SQLite y otros motores de bases de datos. Para instalar este interfaz, ejecutaremos las siguientes órdenes,
sudo apt install libsqliteodbc unixodbc unixodbc-bin
Con esto ya tenemos las herramientas necesarias para conectar SQLite y LibreOffice. Nos queda comprobar que todo es correcto. Para ello, debemos comprobar que existe el archivo /etc/odbcinst.ini
, y que su contenido es el siguiente,
[SQLite] Description=SQLite ODBC Driver Driver=libsqliteodbc.so Setup=libsqliteodbc.so UsageCount=1 [SQLite3] Description=SQLite3 ODBC Driver Driver=libsqlite3odbc.so Setup=libsqlite3odbc.so UsageCount = 1
La conexión ODBC con nuestras bases de datos
Ahora ha llegado el momento de establecer la conexión, dado que hasta el momento, solo hemos instalado el motor y el interfaz. La conexión la debemos establecer para cada una de las bases de datos que tengamos en SQLite. Es decir, debemos decirle a ODBC donde se encuentra nuestra base de datos SQLite, el motor de base de datos que utiliza (SQLite o SQLite3) y otros parámetros.
Para definir todos estos datos, crearemos un archivo en nuestro directorio de inicio ~/.odbc.ini
. Por ejemplo, en mi caso, tengo dos bases de datos definidas, ejemplo.db
y ejemplo2.db
. Así, el contenido de mi archivo ~/.odbc.ini
, será el siguiente,
[datos1] Description=Mis datos Driver=SQLite3 Database=/home/lorenzo/databases/ejemplo.db Timeout=1000 StepAPI=No [datos2] Description=Tus datos Driver=SQLite3 Database=/home/lorenzo/databases/ejemplo2.db Timeout=1000 StepAPI=No
El nombre entre corchetes, [datos1]
para la primera base datos y [datos2]
para la segunda es el que utilizaremos posteriormente para conectarnos con estas bases de datos. Mi recomendación es que evites poner espacios u otros caracteres extraños para evitarte futuras sorpresas.
Por ejemplo, si quieres utilizar isql
(una herramienta de la linea de comandos para acceder a bases de datos vía ODBC) y has puesto algún espacio en el nombre del archivo, tendrás que utilizar dobles comillas. Así si el nombre es [Datos 1]
, tendrás que ejecutar la orden isql "Datos 1"
.
Con esto ya tenemos definido nuestro interfaz para conectarnos a ambas bases de datos.
Abriendo nuestra base de datos SQLite desde Base
Ahora que ya hemos creado nuestros conectores para las bases de datos en SQLite, el siguiente paso es probar su funcionamiento desde Base. Para ello, abriremos una instancia de Base.
Nada mas abrir Base, nos aparece un cuadro de diálogo correspondiente al Asistente de base de datos. Aquí debemos seleccionar la tercera opción Conectar con una base de datos existente y seleccionar la opción ODBC.
Al pulsar Siguiente > continuaremos con el siguiente paso, que nos permite configurar la conexión con una base de datos mediante ODBC. Aquí debes pulsar el botón Examinar...
para seleccionar una de las bases de datos que hemos configurado en el apartado anterior,
Como ves, en el cuadro de diálogo nos aparecen las dos bases de datos que hemos configurado datos1
y datos2
. Continuamos con el asistente, y vamos al siguiente paso, donde nos pregunta el nombre de usuario y que nos permite probar la conexión. Si no has definido usuario y contraseña, no debes poner nada, simplemente pulsa Probar conexión
.
Si al pulsar el botón Probar conexión
, todo ha ido correctamente, te mostrará un cuadro de diálogo informándote de que la conexión se ha establecido correctamente.
Llegados al cuarto y último paso, solo nos queda guardar y continuar. Aquí el asistente nos preguntará si queremos registrar la base de datos en LibreOffice, lo cual es totalmente recomendable para no tener que hacer este proceso en cada ocasión, y si queremos abrir la base de datos para su edición.
Nos preguntará el nombre que queremos darle a nuestra base de datos de LibreOffice y donde la queremos guardar. Para no despistarme le he dado el mismo nombre que a la de SQLite, pero cambiando la extensión datos1.odb
.
¿Porque tenemos dos bases de datos SQLite y Base? Los datos están guardados en SQLite. Ahora bien, en Base tenemos otras herramientas que no están disponibles en SQLite, por ejemplo, Formularios e Informes.
Conclusiones
Como has leído, realizar una conexión entre SQLite y LibreOffice es realmente sencillo, y no presenta complejidad alguna. Además los primeros pasos son comunes a todo. Solo es necesario que recuerdes que en cada ocasión que crees una nueva base de datos en SQLite, es necesario que establezcas la interfaz de conexión ODBC en el archivo ~/.odbc.ini
.
En el siguiente artículo veremos como trabajar con SQLite y Base, que opciones tenemos y que posibilidades nos ofrece.
Más información,
Buena introducción, ahora nos toca aplicarlo y tener unificada la agenda de contactos de thunderbird, del móvil Ubuntu Phone, de la tablet Android y nuestra cuenta de disroot ya sería impresionante.
Bueno… ahí hay trabajo que hacer, veremos que se puede conseguir.
Un saludo Javier.
Sigue vigente a día de hoy, muchas gracias por el breve tutorial!
Salud!