Pregunta

Probando el enfoque fácil:

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

Recibí este error:

Error de SQL cerca de la línea 84802:no hay tal columna:D

En esa línea el script es este:

INSERTAR EN VALORES del vehículo(127548,'21K0065217',Ñ,'PA007808',65217,279,1989,3,468,'1998-07-30 00:00:00.000000','14/697/98-07',2,'',1);

Mi conjetura es que la 'Ñ' sin comillas es el problema.

¿alguna idea?

PD:Estoy en Windows en este momento y me gustaría usar la línea de comandos para poder automatizarlo (este proceso lo realizará un servidor diariamente).

¿Fue útil?

Solución

Simplemente abra la base de datos v2 con la CLI binaria sqlite3 y luego guárdela.El archivo de la base de datos se migrará de forma transparente a v3.

No 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

Y el archivo no se modifica (aparentemente sqlite3 no pudo leerlo).Creo que el problema original es un error en sqlite2.

Otros consejos

Simplemente abra la base de datos v2 con la CLI binaria sqlite3 y luego guárdela.El archivo de la base de datos se migrará de forma transparente a v3.

$ sqlite3 v2database.db
sqlite> .quit
$

Nota:es posible que deba insertar/eliminar una fila antes de salir para forzar una actualización.

Pues nadie contesta...al final termino modificando mi script original (el que creó la base de datos sqlite2 en primer lugar) para crear la base de datos directamente en sqlite3.

Creo que un script de procesamiento de cadenas grande (grande porque mis bases de datos tienen 800 MB y 200 MB cada una) puede hacer el trabajo, pero generar la base de datos directamente fue más fácil para mí.

Intenté hacerlo sin la intervención de Windows:

*llamando a sqlite2 en old.db y enviando el volcado directamente a un archivo

*y luego llame a sqlite3 en new.db y cargue el volcado directamente desde el archivo.

Por si acaso Windows estaba jugando con los caracteres en la línea de comandos.

Mismo resultado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top