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.448 ]

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

Evosign - Adicionar assinatura automática ao Evolution

Gerando arquivos JAR com o Eclipse

Avast antivírus para GNU/Linux

Configurando uma conta do Yahoo no Evolution

Instalando Apache Tomcat em Linux 2.6

Leitura recomendada

Instalando o phpmyAdmin no Debian Etch

OpenOffice + ODBC + MYSQL

Slackware + MariaDB (MySQL): importando e exportando arquivos TXT

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

Sqlite Manager - Plugin do Firefox para criação e manipulação SQL

  
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