2009-05-14 8 views
0

Ich entwickle eine Anwendung und verwende SQLite als meinen Datenbankspeicher. Ich möchte die sqlite-Datenbank während meiner gesamten Anwendungsdauer hinzufügen und aktualisieren, also habe ich sie in das Dokumentenverzeichnis kopiert, damit ich mit meiner Datenbank alle möglichen Dinge tun kann, außer nur aus ihnen auszuwählen.iPhone SQLite Dateiverwaltung

Aber da ich „Zeit“, meine Datenbank bin Entwicklung häufig ändert (die Datenbankarchitektur von einem anderen Entwickler gemacht wird) durch den Prozess

Auf dem iPhone i

  1. , wenn die ich überprüft Datenbank existiert im Dokumentenverzeichnis
  2. (wenn nicht) kopieren Sie es zu ihm.
  3. Verwendung dieser Datenbank

aber wenn ich möchte, dass meine Datenbank aktualisieren (i in einem separaten SQLite Manager gemacht) es durch den Prozess des Kopierens der neuere Version schlägt fehl, weil ich nur überprüft, ob die Datenbank vorhanden ist.

Hat jemand von euch die gleiche Art von Problem erlebt? und was hast du diese Art von Problem zu passieren ..

meine einzige Idee war, eine Einstellungstabelle zu erstellen und eine Reihe zu halten, die das für eine Versionsnummer der Datenbank überprüfen ..

Gibt es auch eine Möglichkeit, die sql-datei aus dem dokumentverzeichnis in einem beliebigen sqlite management-tool bearbeiten?

oder gibt es bessere Lösungen?

Antwort

0

Haben Sie versucht, die Anwendung auf dem iPhone zu löschen und danach die Anwendung erneut bereitzustellen?

+0

das Problem ist, dass ich mit mehreren sqlite-Datenbanken arbeiten und nicht alle löschen will, aber nur die, die ich möchte aktualisieren –

1

Was ich in meiner App getan habe: - Zuerst mache ich das gleiche. Überprüfen Sie, ob sich die DB in Dokumenten befindet oder nicht. - Dann überprüfe ich die vorher installierte Version: kleine Textdatei in Dokumenten sagt mir dies - Wenn es ein Update benötigt, füge ich die Datenbanken zusammen: die in/Dokumente mit der anderen aus dem App-Bundle. - In meinem Fall muss ich zusammenführen. In Ihrem können Sie einfach kopieren, wenn der Benutzer es nicht ändert.

+0

Mischen klingt interessant, wie machst du das? –

1

Was ich mache, ist eine Reihe von SQL-Skripten zu erstellen, die von einer früheren Version 1.sql, 2.sql, 3.sql usw. aktualisieren können. Wenn ich meine Datenbank öffne, frage ich die Version aus einer Einstellungstabelle und vergleiche es mit der neuesten .sql-Datei, die ich in meinem Anwendungspaket gefunden habe. Wenn es eine neuere Version gibt, starte ich die .sql-Skripte, bis ich die neueste Version gefunden habe. Das hat sich für mich in einigen Projekten sehr gut bewährt.

0

Was ich mache ist ähnlich wie du, außer dass ich eine kleine zweite Tabelle zur Datenbank hinzugefügt habe. Diese Datenbank enthält nur einen Datensatz - eine Datenbankversionsnummer. Sie beginnen also mit Version 1 in dieser Datenbanktabelle. Wenn Sie die Struktur ändern, aktualisieren Sie diese Versionsnummer dann auf 2. Überprüfen Sie in Ihrem Startup-Code, ob die Datenbank vorhanden ist. Wenn ja, überprüfen Sie die Versionsnummer der Datenbank. Wenn die Versionsnummer der Datenbank Ihren Erwartungen entspricht, fahren Sie einfach fort. Wenn es weniger ist als erwartet, rufen Sie Code auf, um die Datenbank auf die aktuelle Version zu aktualisieren, und fahren Sie dann fort.