2012-04-05 4 views
0

Ich habe eine C++ - Anwendung, die Daten in einer Datenbank (SQLite) über QxOrm speichert.Legen Sie eine Version zu einer SQLite-Datenbank-Datei

Es ist klar, dass in den nächsten Versionen Spalten hinzugefügt/entfernt/umbenannt werden, daher möchte ich eine Versionsnummer für jede erstellte Datenbank festlegen, so dass beim Versuch, eine Datenbank zu laden, die Version verglichen wird mit der aktuellen Version der Anwendung und automatisch hinzufügen/entfernen/umbenennen die Spalten, um das aktuelle Schema zu entsprechen.

Ich konnte nicht in der QxOrm Dokumentation finden etwas, das wie folgt aussehen würde: Also zuerst

qx::QxSqlDatabase::getSingleton()->setVersion(2); 

ist es möglich, diese Art der Sache mit SQLite zu tun? und wenn nicht sollte ich nur eine Tabelle erstellen, die die Datenbankversion enthalten würde?

Antwort

2

Eine Datenbankversion ist vielleicht nicht genug: Sie sollten eine Version pro persistente Klasse (und vielleicht andere Informationen pro persistente Klasse, wie zum Beispiel eine Liste von Spalten) speichern. Wenn Sie eine persistente Klasse in QxOrm Kontext registrieren, müssen Sie eine Versionsnummer setzen: Mit http://www.qxorm.com/qxorm_en/faq.html#faq_230

:

QX_REGISTER_HPP_XXX(myClass, myBaseClass, myClassVersion) 

Sie einige Informationen über ein SQL-Schema in die FAQ von QxOrm Bibliothek zu schaffen finden Selbstbeobachtung Motor QxOrm Bibliothek, es ist ganz einfach zu tun, mehr Details über Selbstbeobachtung Motor hier: http://www.qxorm.com/qxorm_en/faq.html#faq_190

Sie sollten eine Tabelle in Ihrer Datenbank erstellen einen Zustand zu speichern, für jede anhalten Klassen: Sie können eine Versionsnummer pro Klasse, eine Liste von Spalten usw. speichern. Dann ist es sehr einfach, 2 Versionen der persistenten Klasse zu vergleichen, um Ihr SQL-Schema zu modifizieren.

+0

Vielen Dank! Schön, dass Sie ein Konto bei SO eröffnet haben! Wenn Sie möchten, dass ich weitere Informationen in das QxOrm-Tag für Sie einfüge, lassen Sie es mich wissen! – talnicolas

0

Jetzt haben Sie QxEntityEditor Anwendung, um Ihre Datenbank-Schema-Entwicklung zu verwalten. QxEntityEditor ist ein plattformübergreifender und datenbankübergreifender Grafikeditor für die QxOrm-Bibliothek. Eine Videopräsentation der QxEntityEditor Funktionen ist hier verfügbar: http://www.qxorm.com/qxorm_en/tutorial_4.html

Verwandte Themen