Pular para o conteúdo

Amarok: migrando de SQLite para MySQL

O Amarok usa o SQLite como gerenciador de banco de dados padrão, mas não satisfeito resolvi testar meu tocador de música digital favorito no MySQL. Este artigo descreve a solução para tal caso.
Roberson Carlos robersonfox
Hits: 26.923 Categoria: Banco de Dados Subcategoria: MySQL
  • Indicar
  • Impressora
  • Denunciar

Parte 2: Fazendo o dump de collection.db

O primeiro passo será coletar todas as informações que estão no arquivo collection.db, para isto faça:

sqlite3 collection.db .dump > amarok.sql

Este comando criará um dump do banco de dados SQLite e direcionará o mesmo pelo sinal de maior ">" para o arquivo de texto "amarok.sql". Abra este arquivo com o editor e veja a estrutura completa da base de dados.
Linux: SQLite 2 MySQL no Amarok
Linux: SQLite 2 MySQL no Amarok
No meu caso o arquivo ficou com pouco mais de 9MB e pouco mais de 100.000 linhas. Se você abrir o arquivo verá que a estrutura tem alguns parâmetros que o MySQL desconhece. Agora vamos remover as linhas desnecessárias e criar o arquivo com os dados.

cat amarok.sql | grep -v "INSERT INTO admin" | \
perl -pe 's/INSERT INTO \"(.*)\" VALUES/INSERT INTO \1 VALUES/' > amarok2.sql

$ cat amarok2.sql | \
grep -v "BEGIN TRANSACTION;" | \
grep -v "COMMIT;" | \
grep -v "CREATE TABLE" | \
grep -v "INSERT INTO directories VALUES" | \
grep -v "CREATE INDEX" | \
grep -v "CREATE UNIQUE INDEX" > amarok_dados.sql


Deste comando resultará um arquivo chamado "amarok_dados.sql", abra-o no editor de textos e verá que ele somente tem inserções, mas onde será inserido? As tabelas ainda não foram criadas! Para criar a estrutura do banco de dados passe o seguinte comando:

cat amarok.sql | \
grep -v "BEGIN TRANSACTION;" | \
grep -v "COMMIT;" | \
grep -v "INSERT INTO" > amarok_estrutura.sql


e o comando a seguir para evitar o erro: "ERROR 1071 (42000) at line 7: Specified key was too long; max key length is 1000 bytes":

replace "VARCHAR(1024)" "VARCHAR(996)" -- amarok_estrutura.sql
$ replace "VARCHAR(256)" "VARCHAR(255)" -- amarok_estrutura.sql


Agora abra o arquivo resultante do comando, o amarok_estrutura.sql, e todas as linhas que não iniciarem com CREATE UNIQUE INDEX, CREATE TABLE e CREATE INDEX você deve apagar, ou melhor dizendo, tudo que não iniciar com CREATE você deve apagar.

Salve o arquivo e estamos prontos para inserir a estrutura e os dados. Lembre-se que durante os passos de maneira alguma você pode ter iniciar o Amarok, senão ele criará a estrutura e então você terá algumas mensagens de erro.

   1. Introdução
   2. Fazendo o dump de collection.db
   3. Pipe para o MySQL

Alterando as permissões de um arquivo

VNC - Virtual Network Computing

Rodando jogos a partir de uma imagem ISO

Hamachi - Redes virtuais utilizando software e internet

Registrando extensões no kernel com o binfmt_misc

Instalando o phpmyAdmin no Debian Etch

Instalando o MySQL Workbench - com solução de possível problemas de dependência

Blindando o MySQL: Configurações de segurança

MariaDB + phpMyAdmin no Ubuntu 12.04 LTS

MySQL Workbench no Slackware 14.0

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.