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.

[ Hits: 25.494 ]

Por: Roberson Carlos em 03/10/2008 | Blog: http://carlrobers.wordpress.com


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.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Fazendo o dump de collection.db
   3. Pipe para o MySQL
Outros artigos deste autor

Gravando CDs em modo texto

Como atribuir notícias RSS ao seu site usando ATOM e PHP

Modem 3G no Ubuntu Linux 8.04 - Qualquer operadora

Evosign - Adicionar assinatura automática ao Evolution

Avast antivírus para GNU/Linux

Leitura recomendada

Instalação e configuração do MySQL com phpMyAdmin no CentOS - Iniciantes

Gerenciando banco de dados com MySQL (Parte 1)

Introdução ao MySQL

OcoMon 2.0RC6 no OpenSUSE 11.2 com PHP5 + MySQL5 + Apache2 com correção de acentuação

Gerenciando banco de dados com MySQL (parte 2)

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts