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

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:

[email protected]:~$ cd ~/.kde/share/apps/amarok
[email protected]:~$ 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:

[email protected]:~$ cat ~/amarok.sql | grep -v "BEGIN TRANSACTION;" > ~/amaroka.sql
[email protected]:~$ cat ~/amaroka.sql | grep -v "COMMIT;" > ~/amarok.sql
[email protected]:~$ cat ~/amarok.sql | grep -v "CREATE TABLE" > ~/amaroka.sql
[email protected]:~$ cat ~/amaroka.sql | grep -v "CREATE INDEX" > ~/amarok.sql
[email protected]:~$ cat ~/amarok.sql | grep -v "CREATE UNIQUE INDEX" > ~/amaroka.sql
[email protected]:~$ 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:

[email protected]:~$ 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.

[email protected]:~$ 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.

Comentario, Preguntas o agradecimientos?