Frage

den einfachen Ansatz Versuch:

  

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

Ich habe diesen Fehler:

  

SQL-Fehler bei Zeile 84802: keine solche Spalte: D

In dieser Zeile das Skript ist dies:

  

INSERT INTO vehiculo VALUES (127548, '21K0065217', n , 'PA007808', 65217,279,1989,3,468 '1998.07.30 00: 00: 00,000000', '14 / 697 / 98-07' , 2 '', 1);

Meine Vermutung ist, dass die 'n' ohne Anführungszeichen ist das Problem .

irgendeine Idee?

PD:. Ich bin jetzt unter Windows und ich möchte die Befehlszeile verwenden, so dass es automatisiert werden kann (dieser Prozess auf täglicher Basis werden von einem Server durchgeführt werden)

War es hilfreich?

Lösung

  

Öffnen Sie einfach die v2-Datenbank mit dem sqlite3 binären CLI, und dann speichern Sie es. Die Datenbankdatei transparent zu v3 migriert werden.

Es funktioniert nicht.

$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

Und die Datei nicht geändert wird (scheinbar konnte sqlite3 es nicht lesen). Ich denke, das ursprüngliche Problem um einen Fehler in sqlite2 ist.

Andere Tipps

Öffnen Sie einfach die v2-Datenbank mit dem sqlite3 binären CLI, und dann speichern Sie es. Die Datenbankdatei transparent zu v3 migriert werden.

$ sqlite3 v2database.db
sqlite> .quit
$

. Hinweis: Sie müssen möglicherweise eine Zeile einfügen / löschen vor dem Beenden ein Update zu erzwingen

Nun niemand Antwort ... am Ende ich meine Original-Skript am Ende Modifizieren (denjenigen, der die sqlite2 Datenbank in erster Linie erstellt), um die Datenbank direkt in sqlite3 zu erstellen.

Ich denke, dass eine große String-Verarbeitung Skript (groß, weil mi Datenbanken ist 800MB und 200MB each) kann die Arbeit erledigen, aber direkt auf die Datenbank war für mich einfacher zu erzeugen.

Ich habe versucht, es ohne Fenster Intervention zu tun:

  

* von sqlite2 auf old.db Aufruf und den Dump direkt in eine Datei senden

     

* und rufen Sie dann sqlite3 auf new.db und den Dump direkt aus der Datei geladen werden.

Für den Fall, Fenster wurden auf der Kommandozeile mit den Charakteren durcheinander.

Das gleiche Ergebnis.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top