Pergunta

Tentando a abordagem fácil:

sqlite2 mydb.db .dump | mydb-new.db sqlite3

Eu tenho esse erro:

erro SQL perto da linha 84802: nenhuma coluna: D

Nessa linha o script é o seguinte:

Os valores INSERT INTO vehiculo (127548, '21K0065217', N , 'PA007808', 65217,279,1989,3,468, '1998/07/30 00: 00: 00.000000', '14 / 697/98-07' , 2, '', 1);

Meu palpite é que o 'N' sem aspas é o problema .

alguma idéia?

PD:. Estou sob o Windows agora e eu gostaria de usar a linha de comando para que ele possa ser automatizada (este processo será feito diariamente por um servidor)

Foi útil?

Solução

Basta abrir o banco de dados v2 com o CLI binário sqlite3, e depois salvá-lo. O arquivo de banco de dados será transparente migraram para v3.

Ele não funciona.

$sqlite3 db2
SQLite version 3.6.16
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
Error: file is encrypted or is not a database
sqlite> .q

E o arquivo não é alterado (aparentemente sqlite3 não poderia lê-lo). Eu acho que o problema original é um bug no sqlite2.

Outras dicas

Basta abrir o banco de dados v2 com o CLI binário sqlite3, e depois salvá-lo. O arquivo de banco de dados será transparente migraram para v3.

$ sqlite3 v2database.db
sqlite> .quit
$

Nota:. Pode ser necessário inserir / excluir uma linha antes de sair para forçar uma atualização

Bem ninguém resposta ... no final eu acabar modificando meu roteiro original (aquele que criou o banco de dados sqlite2 em primeiro lugar) para criar o banco de dados diretamente em sqlite3.

Eu acho que um script de processamento de corda grande (grande, porque os bancos de dados mi são 800MB e 200MB cada) pode fazer o trabalho, mas gerar o banco de dados diretamente era mais fácil para mim.

Eu tentei fazê-lo sem intervenção do Windows:

* chamando sqlite2 em old.db, e enviar o despejo diretamente para um arquivo

* e sqlite3 em seguida, chamada em new.db e carregar o despejo diretamente do arquivo.

Apenas em janelas de casos estava mexendo com os caracteres na linha de comando.

mesmo resultado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top