4.Migración de Access a OpenOffice.org 3.0 Base sobre MySQL.Sin duda esta ha sido mi mayor lastre durante estos años para poder pasarme a Linux y el principal motivo de escribir este tutorial. Soy Veterinario y todo mi trabajo lo llevaba con una base de datos
Access, donde tenia mis clientes, visitas y la utilizaba para el envio de cartas informativas a los clientes; para esto último utilizaba
OpenOffice.org 2.4 que se conectaba a Access mediante
ODBC.
Durante mucho tiempo mi solución en Linux era utilizar
Access mediante
CrossOver Office Pro.( programa basado en wine y shareware); comence con la version
3.0, donde Access ( de
Microsoft Office XP Professional) era muy inestable cuando hacia busquedas; desde la version
4 el producto fue mejorando hasta la actual versión
7 donde no me ha dado ningun problema, tenia la facilidad de ser el mismo archivo
mdb (extensión de los archivos de Access) tanto para Linux como Windows.
Solo comentar que
respecto a Access, CrossOver solo cubre Access del
Office XP del 2002; en ningún Office posterior cubre Access; por ejemplo en la última versión cubre el Office 2007 pero solo Word, Excel, Powerpoint, y algunas opciones de Outlook.
Lógicamente esta solución no me llenaba; mi idea era pasar la base de datos a un formato libre y después ver la forma de manejarla en Linux. Respecto a los formatos libres, hay varias opciones, yo me decidi por
MySQL, por estar muy documentada, con mucha información en la red y como mi base de datos es pequeña no deberia tener problemas.
4.a) Paso de Access a MySQL.
Hay muchos programas que realizan este proceso, tanto en Windows como en Linux; yo me decidí por hacerlo en Windows, teniendo en cuenta que es un formato de ese S.O. me parecio lo mas indicado. Por tanto, lo primero es instalar
MySQL en windows, solo hay que bajarse el instalador de
Sun y seguir el proceso.
Pero no solo era tener MySQL, sino que después tenia que comunicarme con ella de una forma fácil. Mi amigo Antonio (un saludo) había realizado el paso de Access a MySQL creando los formularios y toda la estructura con
Apache + PHP en una pagina web, con un gran resultado. Por tanto lo primero que hay que hacer es instalar
MySQL + Apache +PHP + phpMyAdmin; este último programa es genial y me ha servido mucho en la migración como veremos después.
Tanto para windows como Linux hay paquetes que te instalan todos estos componentes de una vez; yo me decidi por
AppServ, que podeis encontrar en su web:
http://www.appservnetwork.com/Se instala muy facilmente, y solo hay que tener en cuenta que te pedira un password para el usuario
root de MySQL, este root no tiene que ver nada con el administrador de Linux; es el administrador de MySQL y su contraseña no la podemos olvidar, pues nos hará falta en todo el proceso.
Con esto tenemos Windows preparado para pasar
Access a MySQL; ahora nos hace falta un programa que haga el trabajo; he probado muchos, pero al final el que mejor resultado me ha dado fue
Access to MySQL de Bullzip.com (gracias Antonio), es gratuito y lo podeis encontrar en su pagina web:
http://www.bullzip.com/download.phpY el enlace directo es:
http://www.bullzip.com/download/a2m/msa2mys_3_0_0_108.zipSu instalación no tiene problemas, después lo ejecutas (asegurate que el servidor MySQL se esta ejecutando -----> Ejecutas
Services.msc y lo inicias si no esta activo); primero debes seleccionar la base de datos
Access, el archivo
mdb y después la
conección a MySQL, donde no debes modificar nada, solo añadir la
contraseña para root de MySQL y el programa hará la migración, en mi caso sin problemas, pero si lo hubiese el programa te da la información al finalizar.
De esta manera, el programa crea la nueva base de datos en esta carpeta:
C:\AppServ\mysql\data\movedbEn mi caso como tenia tres tablas, se crean nueve archivos, pues en MySQL con el nombre de cada tabla se crean tres archivos:
clientes.frm
clientes.myd -------->debe ser
clientes.MYDclientes.myi --------->debe ser
clientes.MYIdb.opt
vacunaciones8.frmvacunaciones8.MYD
vacunaciones8.MYIvacunaciones9.frmvacunaciones9.MYD
vacunaciones9.MYI
******
Mientras hago este tute, estoy cogiendo los datos desde Linux y curiosamente en los nombres de los archivos anteriores, se puede comprobar un error que me volvio loco; pues con estos archivos desde windows, con el servidor
Apache funcionando, se puede ver que la migración había salido perfectamente, incluido un campo
MEMO que en otras ocasiones me habia dado problemas, se habia trasladado a un campo
TEXT y estaba completo. Para comprobarlo entramos al programa
phpmyadmin mediante esta dirección en el navegador de internet:
http://localhost/phpmyadmin/index.phpAlli tenemos que colocar como usuario
root y la contraseña de MySQL; de esta forma vemos las base de datos y observamos que todo esta bien. Pero cosas curiosa, cuando hice lo mismo en linux, comprobe que la tabla
clientes no aparecia; primero pense en los permisos, pero claro todas tenian el mismo, no podia ser; y así llegamos a otra gran diferencia entre Windows y Linux; mientras que para Windows la diferencia entre mayusculas y minusculas no existe (da lo mismo PACO,que paCO,que paco); Linux es
Case Sensitive, osea las mayusculas y minusculas son consideradas diferentes y hay estaba el problema, los archivos de MySQL deben tener la extención en mayusculas,por lo menos el
MYD y el
MYI; y en este caso, como podeis ver la tabla clientes los tenia en minusculas,por eso desde Linux no la podia ver :-p.
******
4.b) Paso de las bases de datos MySQL a Linux.
Primero hay que preparar Linux para pasar la nueva base de datos. Podemos utilizar un programa que lo haga todo como el AppServ de Windows, en Linux hay varios, el mas conocido es
Xamp, que podeis encontrar en:
http://www.apachefriends.org/es/xampp.htmlPero claro, estamos en Linux,( creo que los servidores es lo suyo ;-I), y como buen Debianita, solo podia hacer una cosa,instalar las cosas de forma independiente, que por otro lado puedes controlar mejor, se actualizan por repositorios y en Debian es tan fácil como poner en un terminal como
root esta orden:
# aptitude install apache2 libapache2-mod-php5 php5 mysql-common mysql-server-5.0 mysql-client-5.0 phpmyadmin libapache2-mod-auth-mysqlComo veis no todo en linux es dificil,jeje. Bueno, normalmente durante la instalacion te pedira la contraseña de
root para MySQL, ya sabeis apuntadla que nos va a ser falta. Si no te la pidiese deberias poner en el terminal:
#mysql -u root -pTe pedira la contraseña y listo ya puedes salir con la orden
exit.
Ahora solo queda crear nuestra base de datos con
phpmyadmin. Ejecutamos en el firefox o cualquier navegador web:
http://localhost/phpmyadmin/index.phpNos pedira usuario:
root y la contraseña que hemos puesto para MySQL y entramos a la pagina inicial de
PhpMyAdmin, donde vemos muchas opciones que de momento no debemos tocas. Vamos a seleccionar la entrada
“Bases de datos” y en la nueva pagina que se abre, buscamos abajo una entrada que pone
“Crear una nueva base de datos”, le ponemos el nombre que queramos y le damos a
“Crear”. No hay que hacer nada mas, nos salimos y ahora vamos a pasar todos los archivos que teniamos en:
C:\AppServ\mysql\data\movedb\
Para encontrarlos tenemos que tener en cuenta que en linux las particiones se nombran de otra manera, en mi caso la partición
C: se llama
hda1 (en un disco duro
ide, si fuera
sata se llama
sda1) y tu la puedes montar en cualquier carpeta que crees ( en linux todo son archivos, desde las particiones, la grabadora etc....); en mi caso yo lo he montado en
/mnt/xp/; quedando el path hacia los archivos de windows en:
/mnt/xp/AppServ/mysql/data/movedbCopiamos todos los archivos de esa carpeta y nos vamos a:
/var/lib/mysql/cvtucan/; donde pegamos todos los archivos
Como veis en Linux los archivos de pagina web, mysql, logs del sistema, cola de la impresora, etc... se encuentran an la carpeta
/var/, en nuestro caso concreto la base de datos que hemos creado con
phpmyadmin se coloca en
/var/lib/mysql/, como yo la he llamado
cvtucan, ha creado una carpeta con ese nombre donde debemos pegar los archivos de Windows.
Ahora podemos volver a comprobar que estan las tablas correctamente colocadas en nuestra nueva base de datos “cvtucan” con phpmyadmin. Ya sabeis que Linux es Case Sensitive, tenedlo en cuenta.
Por último, solo queda para evitar problemas de
permisos, que nuestro usuario forme parte del grupo que tiene permiso para manejar las tablas MySQL. Al instalarse el servidor mysql se ha creado un grupo llamado
mysql; esto lo podemos ver en
Gnome, en el menú
“Sistema>Administracion>Usuarios y grupos”, al iniciarse nos pedira la contraseña de root, pues es una tarea que solo puede realizar él, y en la ventana que sale podemos ver los
usuarios. Ademas tenemos la opción de
“Gestionar grupos”, le damos clic y vemos todos los grupos que hay; vemos que hay un grupo con nuestro mismo nombre, pero el que debemos seleccionar es el grupo
mysql y le damos al botón que pone
“Propiedades”, en el veremos los
“Miembros del grupo”, donde debe aparecer nuestro nombre y el de root como minimo; en este caso marcamos nuestro nombre y le damos a
“Aceptar” para que guarde los cambios. De esta manera somos parte del grupo mysql y podremos editar, modificar y suprimir las tablas que hemos transferido.
***Muy importante***No esta de más asegurarnos que todos los archivos que hemos colocado en
/var/lib/mysql/cvtucan/ sean propiedad del usuario y grupo
mysql, y que tanto el usuario como el grupo(donde estamos nosotros) tengan permiso de
Lectura, Escritura y Ejecucion. Esto se puede hacer facilmente, como ya he explicado, desde el navegador de archivos (Nautilus), seleccionando los archivos y con un clic derecho ver las propiedades.

4.c) Preparar OpenOffice.org.
Para esta parte se puede utilizar el
Openoffice.org v.3.0, que aunque no esta en los repositorios de
Debian Lenny, se puede descargar de su pagina web; o utilizar el
OpenOffice.org v.2.4 donde también he comprobado que funciona todo lo que voy a explicar de forma correcta.
En mi caso, me apetecia probar la nueva version
3.0 asi que me la descargue desde OpenOffice.org:
http://es.openoffice.org/programa/index.htmlAlli debemos coger la opción para Linux y en concreto el enlace
Debs, pues es la forma de los paquetes que admiten las distribuciones
Debian y todas las que estan basadas en ellas (como
Ubuntu,
Knoopix....), de esta manera se descarga un paquete comprimido,en mi caso:
Ooo_3.0.0_LinuxIntel_install_es_deb.tar.gz (puede que ahora haya cambiado de versión).
Antes de instalarlo es recomendable desinstalar todo sobre el OpenOffice 2.4, curiosamente el OpenOffice 3 se instala en el directorio
/opt/ y podria convivir con el 2.4 que se encuentra en
/usr/lib/openoffice; pero a la hora de utilizarlo me dio errores, por lo que primero debemos eliminar con
Synaptic (gestor de paquetes para Debian en forma grafica) todo lo relacionado con la version
2.4.
Después debemos descomprimir el paquete
tar.gz que nos hemos bajado, entramos en la carpeta
OOO300_m9_native_packed-1_es.9358 y alli nos encontramos con una carpeta llamada
DEBS. Lo mas comodo en este punto es llegar con un terminal a esa carpeta
DEBS y ejecutar como root:
#dpkg -i *.debDe esta manera ejecutamos todos los archivos .
deb en una sola orden, pues el * es un comodín.
Ya solo queda integrarlo en el menú de
Gnome o
Kde, para ello entramos desde el mismo terminal a la carpeta
desktop-integration que esta en la misma carpeta DEBS:
#cd desktop-integration/Y allí instalamos el archivo deb que esta en su interior:
#dpkg -i openoffice.org3.0-debian-menus_3.0-9354_all.debDe esta manera tenemos nuestra version 3 preparada para trabajar, aunque todavia nos falta algunos detalles:
1. Instalar Java. Para conectarnos a MySQL vamos a utilizar
JDBC; que esta basada en
Java; por tanto en Linux debe estar instalado Java.. Hay distribuciones como
Ubuntu que la instalan directamente, pero en
Debian debemos hacerlo desde
Synaptic (en
Gnome Sistema> Administracion> Gestor de paquetes Synaptic) o desde un terminal como
root:
#aptitude install sun-java6-bin sun-java6-jreAdemás debemos decirle a Debian que utilice esta maquina java por defecto, pues curiosamente hay otra predeterminada (
java-gcj) que no nos interesa. Para ello debemos de ejecutar esta orden como
root:
#update-alternatives --config javaNos saldran las opciones que tenemos en el sitema. En mi caso:
Hay 3 alternativas que proveen `java'. Selección Alternativa----------------------------------------------- 1 /usr/bin/gij-4.3*+ 2 /usr/lib/jvm/java-gcj/jre/bin/java 3 /usr/lib/jvm/java-6-sun/jre/bin/javaPulse para mantener el valor por omisión [*] o pulse un número de selección:_
En este caso deberiamos poner 3 y darle a Intro. Si repites el comando veremos como el asterisco esta en al java correcto.
Selección Alternativa
-----------------------------------------------
1 /usr/bin/gij-4.3
+ 2 /usr/lib/jvm/java-gcj/jre/bin/java
* 3 /usr/lib/jvm/java-6-sun/jre/bin/java
2.Instalar el conector de Java para MySQL
Este conector no viene integrado en OpenOffice, hay que descargarlo e instalarlo. Para ello nos vamos a la pagina de MySQL:
http://dev.mysql.com/downloads/connector/j/5.1.html
En este caso nos descargamos la ultima versión, mysql-connector-java-5.1.7.tar.gz.
Lo descomprimos y veremos en su interior el archivo mysql-connector-java-5.1.7-bin.jar, que como vemos por la extensión .jar es un ejecutable de java.
Ahora queda integrarlo con el OpenOffice, para ello abrimos cualquiera de sus programas y nos vamos al menú “Herramientas>Opciones” y una vez nos salga la ventana de opciones nos vamos al menú "OpenOffice.org> Java", y nos saldra las “Opciones de Java” a su derecha:
Debe estar marcado la opción de “Usar un entorno de ejecucion de Java” y en el recuadro interior la maquina java de Sun que hemos instalado. Además en los botones de la derecha vemos “Class Path”, debemos dar clic allí y en ventana que nos salga, le daremos a elegir archivo y buscaremos el archivo .jar que hemos descomprimido:
Ahora solo queda aceptar y tenemos el OpenOffice preparado.
4.d) Crear la base de datos en OpenOffice.org Base.
Por fin acabamos, ya solo queda crear la base de datos en Base, para después poder empezar a crear formularios y consultas; que son las dos formas que yo utilizo normalmente para interactuar con MySQL.
Ejecutamos OO Base desde el menu de Gnome: “Aplicaciones>Oficina>OpenOffice.org 3.0 Base” y nos saldra un asistente para bases de datos:
Seleccionamos “Conectar con una base de datos existente” y en el menú desplegable que tenemos abajo seleccionamos “MySQL” y le damos a “Siguiente”.
Pasamos a “Configurar conexión de MySQL” donde seleccionamos “Conectar utilizando JDBC”, y le damos a “Siguiente”
Llegamos a la entrada “Configurar conexión de JDBC”, aquí debemos colocar el “Nombre de la base de datos” que hicimos con phpmyAdmin, en mi caso cvtucan, y en la “Dirección URL del servidor”, como es nuestra propia maquina colocamos localhost, respecto al “Número de puerto” el predeterminado nos sirve (3306), no hay que ponerlo y en la “Clase de controlador MySQL JDBC” también debe estar colocado,pues es lo que hicimos anteriormente con el conector, de todos modos por si no sale, el nombre que debe aparecer es “com.mysql.jdbc.Driver”. Le damos a Siguiente.
En el apartado “Configurar autenticacion del usuario” solo debemos indicar que necesitaremos contraseña para acceder a MySQL y por último pasamos a “Guardar y continuar” donde pondremos un nombre a la base de datos que hemos creado y le damos a Finalizar.
De esta manera hemos creado una base de datos de OpenOffice, que en mi caso se llama cvtucan.odb, que sera la encargada de comunicarse con MySQL y donde podemos crear formularios, consultas e incluso otras tablas.
4.e) Problemas
De momentos muy pocos, logicamente estuve un tiempo de transición preparandolo todo, hasta que vi que funcionaba y pude migrar mi trabajo totalmente a MySQL.
Por último comentar que con Base también se pueden crear bases de datos muy completas y para empezar puede ser muy interesante. Por si alguien le interesa he encontrado un gran tutorial sobre su manejo realizado por Álvaro E. Prieto Ramos:
http://tutorialopenofficebase.wordpress.com/
Un saludo
[Juan Jose]