Amarok: Migracion de la base de datos Sqlite a Mysql 5

0 Comments

Quiero tener un backup de mi base de datos de amaroK, pero no se como hacerlo en sql-lite 3. Tambien quiero desarrollar un control web para amarok, y por esta razon yo decidi migrar la base de amarok de SQLite a MySQL 5.x.

En la pagina oficial de amaroK muestran algunas formas de pasar la colecion de musica de amarok desde SQLite a la base de datos de MySQL. Pero para la version de amarok (1.4.9) que utilizo me funciono asi:

Crear la base de datos de AmaroK

Para los siguientes pasos no reproducimos ninguna cancion.

  1. Iniciar Amarok
  2. En settings -> Configure Amarok -> Collection, cambiamos de SQLite a MySQL
  3. Cerrar Amarok

Al ingresar el usuario y password de MySQL en la configuracion de amaroK, este automaticamente genera las tablas vacias de la base de datos.

Exportando la Coleccion

Ahora es necesario tomar la informacion de la coleccion desde sqlite y migrarla a un archivo sql.

Para exportar la colecion a un archivo, tecleamos:

fher98@ubuntu:~$ cd ~/.kde/share/apps/amarok
fher98@ubuntu:~$ sqlite3 collection.db .dump > ~/amarok.sql

Ahora ya tenemos el dump de sqlite y la nueva base en MySQl. Por lo tanto necesitamos limpiar el sql generado, y eliminar todas las instrucciones de creacion de tablas e indices del archivo:

fher98@ubuntu:~$ cat ~/amarok.sql | grep -v "BEGIN TRANSACTION;" > ~/amaroka.sql
fher98@ubuntu:~$ cat ~/amaroka.sql | grep -v "COMMIT;" > ~/amarok.sql
fher98@ubuntu:~$ cat ~/amarok.sql | grep -v "CREATE TABLE" > ~/amaroka.sql
fher98@ubuntu:~$ cat ~/amaroka.sql | grep -v "CREATE INDEX" > ~/amarok.sql
fher98@ubuntu:~$ cat ~/amarok.sql | grep -v "CREATE UNIQUE INDEX" > ~/amaroka.sql
fher98@ubuntu:~$ cp ~/amaroka.sql ~/amarok.sql

Si han seguido los comandos anteriores ya tienen los datos de su coleccion musical. Un ultimo paso de limpieza antes de poblar la base de datos, tecleamos:

fher98@ubuntu:~$ cat ~/amarok.sql | grep -v "INSERT INTO admin" | perl -pe 's/
INSERT INTO "(.*)" VALUES/INSERT INTO 1 VALUES/' > ~/amarok.sql

Importando la coleccion musical

Todo va bien, ahora importaremos el contenido de la coleccion de musica al servidor de bases de datos MySQL. Recuerden que ya tienen creada la base de datos y el usuario.

fher98@ubuntu:~$ mysql -u amarok -p amarokdb < amarok.sql

Donde,

  • -u Es el usuario de la base de datos
  • -p Solicita la contraseña
  • amarok Es el nombre de la base de datos
  • amarok.sql Es el archivo donde esta la DB de la coleccion.

Ahora pueden iniciar el Amarok y tendran toda su coleccion funcional en MySQL. Todos los comandos vistos en este articulo funcionan en Linux Debian/CentOS/RedHat/Ubuntu.

Deja tus preguntas o comentarios