Inhaltsverzeichnis
Einführung
Dieser Leitfaden behandelt die Migration von DentalDB-Daten von einer SQLite-Datenbank zu MySQL/MariaDB oder SQL Server (auch bekannt als MS SQL).
Es gibt viele kostenlose und kommerzielle Tools, die die Migration von Daten aus einer SQLite-Datenbank zu MySQL/MariaDB und anderen Datenbank-Engines unterstützen.
Unsere Erfahrung mit den Tools ist bis jetzt, dass das kommerzielle Tool ESF Database Migration Toolkit eine ziemlich gute Arbeit geleistet hat und in dieser Hinsicht besser abschneidet als SQLite Migration And Sync.
Voraussetzungen
- Grundkenntnisse im Bearbeiten von XML-Dateien
- Kenntnisse der Datenbankadministration
- Für SQL Server ist DentalDB 2.4 Plovdiv oder höher erforderlich, alternativ 2.3 Matera DentalDB Hotfix (Matera2.3 2019-10-02).
- DentalDB-Versionen vor 3.2 Elefsina unterstützen nur MariaDB-Server bis Version 10.6.x (spätere MariaDB-Versionen sind möglicherweise nicht kompatibel).
Anweisungen
- Um Datenverlust zu verhindern, erstellen Sie ein Backup der SQLite-Datenbank, indem Sie eine Kopie der Datei DentalDB_V3.sqlite erstellen (diese liegt in C:\CAD-Data, aber der Ort kann je nach Ihrem Vertriebspartner variieren).
- Erstellen Sie ein Datenbankschema in der Ziel-Datenbank:
- Notieren Sie sich den Namen des Schemas, den Benutzer und das Passwort. Im Beispiel unten ist der Schema-Name dentaldb, der Benutzer test und das Passwort somepass.
- Stellen Sie sicher, dass Sie dem Datenbankbenutzer die richtigen Berechtigungen erteilen. Weitere Details finden Sie in der Datenbankdokumentation.
- Erstellen Sie die Datei settings-db.xml im Ordner DentalDB\config, falls diese dort noch nicht vorhanden ist.
- Bearbeiten Sie settings-db.xml wie folgt:
- Wenn der Tag SQLSettings bereits vorhanden ist, ersetzen Sie ihn durch den untenstehenden.
- Wenn der Tag SQLSettings fehlt, fügen Sie ihn wie im Beispiel unten hinzu.
- Öffnen Sie eine Eingabeaufforderung und führen Sie DentalDB mit dem Argument /CreateDatabase aus.
- Hinweis: Das DentalDB-Fenster öffnet sich nicht, und die Anwendung wird beendet, sobald die erforderlichen Tabellen erstellt wurden.
- Falls erforderlich, passen Sie die Datenbankkodierung an, wie hier beschrieben .
Führen Sie das Migrations-Tool Ihrer Wahl aus, indem Sie die SQLite-Datei als Quelle und die oben konfigurierte Datenbank als Ziel angeben.
MySQL/MariaDB-Konfiguration
- <SQLSettings>
- <ConnectionString>Server=localhost;Database=dentaldb;User ID=test;Password=somepass</ConnectionString>
- <SQLDialect>NHibernate.Dialect.MySQLDialect</SQLDialect>
- <DriverClass>NHibernate.Driver.MySqlDataDriver</DriverClass>
- </SQLSettings>
SQL Server-Konfiguration
Verbindung über SQL Server-Authentifizierung
- <SQLSettings>
- <ConnectionString>server=MY_DENTAL_SERVER_PC_NAME\SQLEXPRESS01; database=dentaldb;user=test;pwd=somepass</ConnectionString>
- <SQLDialect>NHibernate.Dialect.MsSql2008Dialect</SQLDialect>
- <DriverClass>NHibernate.Driver.SqlClientDriver</DriverClass>
- </SQLSettings>
Verbindung über Windows-Authentifizierung
- <SQLSettings>
- <ConnectionString>server=MY_DENTAL_SERVER_PC_NAME\SQLEXPRESS01; database=dentaldb;Integrated Security=SSPI;</ConnectionString>
- <SQLDialect>NHibernate.Dialect.MsSql2008Dialect</SQLDialect>
- <DriverClass>NHibernate.Driver.SqlClientDriver</DriverClass>
- </SQLSettings>
Auswahl der richtigen Zeichencodierung für MariaDB/MySQL
Das Zeichensatz für die jeweilige Datenbank sollte utf8mb4 sein. Andernfalls können Fälle mit bestimmten Sonderzeichen (z. B. im Notizfeld) nicht gespeichert werden. Wenn Ihre Standard-Zusammenstellung noch nicht entsprechend festgelegt ist, müssen Sie den entsprechenden Zeichensatz für die jeweilige Datenbank einstellen. Führen Sie dazu den folgenden SQL-Befehl aus:
- ALTER DATABASE dentaldb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Wobei dentaldb der Name der Datenbank ist, die Sie für die DentalDB-Software verwenden.
Fehlerbehebung: Falls die richtige Zeichencodierung anfangs nicht festgelegt wurde, können Sie vorhandene Tabellen nachträglich auf utf8mb4 konvertieren:
- ALTER TABLE dentaldb.CustomWorkDefinition CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.DependentOnNumericToothWorkParameters CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.DependentToothWorkParameters CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.NumericToothWorkParameter CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.TextualToothWorkParameter CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.ToothWork CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.ToothWorkParameters CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.Treatment CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.TreatmentValuedCustomInfo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.TreatmentValuedParameters CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.ValuedMaterialParameters CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.WorkParamsInfoDentalShare CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.WorkParamsInfoLocal CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.WorkParamsInfoLocalImport CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.client_allowedImportedIds CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.clients CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.databaseInformation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.laboratories CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.patients CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- ALTER TABLE dentaldb.technicians CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Wobei dentaldb der Name der Datenbank ist, die Sie für die DentalDB-Software verwenden. Zur Erinnerung: Das muss nur gemacht werden, um eine Datenbank wiederherzustellen, die ohne korrekte Zeichencodierung gefüllt wurde.
HAFTUNGSAUSSCHLUSS
Die oben genannten Migrationsanweisungen werden ohne jegliche Garantie bezüglich Datenverlust oder Gültigkeit bereitgestellt. Folgen Sie diesen Schritten daher nur auf eigenes Risiko.