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.
- Iniciar Amarok
- En settings -> Configure Amarok -> Collection, cambiamos de SQLite a MySQL
- 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.