DentalDB SQLite移行

WarningこのページはAIによって翻訳されているため、若干の不正確さが含まれている可能性があります。正確な使用情報については、元の英語版をご参照いただくか、販売代理店にお問い合わせください。

はじめに

本ガイドでは、DentalDB のデータを SQLite データベースから MySQL/MariaDB または SQL Server(MS SQL とも呼ばれます)へ移行する手順について説明します。

SQLite から MySQL/MariaDB やその他のデータベースエンジンへのデータ移行をサポートするフリーソフトや商用ツールは多く存在します。

私たちが短期間試した結果では、商用ツールの ESF Database Migration Toolkit の方が SQLite Migration And Sync よりもこの点において優れたパフォーマンスを示しました。

前提条件

XML ファイルの編集に関する基本的な知識

データベース管理に関する知識

SQL Server を使用する場合、DentalDB 2.4 Plovdiv 以降が必要です。あるいは 2.3 Matera DentalDB hotfix (Matera2.3 2019-10-02) でも対応可能です。

3.2 Elefsina より前のバージョンの DentalDB では、MariaDB のバージョン 10.6.x までしかサポートしていません(それ以降の MariaDB バージョンでは互換性がない場合があります)。

手順

  1. データ損失を防ぐため、SQLite データベース DentalDB_V3.sqlite のバックアップを作成します(デフォルトでは c:\CAD-Data に配置されていますが、販売代理店の設定によって場所が異なる場合があります)。
  2. 移行先となるデータベースでスキーマを作成します:
    1. スキーマ名、ユーザー名、パスワードをメモしておきます。以下の例では、スキーマ名を dentaldb、ユーザーを test、パスワードを somepass とします。
    2. データベースユーザーに正しい権限を付与してください。詳細はデータベースのドキュメントをご参照ください。
  3. settings-db.xml ファイルが DentalDB\config フォルダ内に存在しない場合は作成します。
  4. settings-db.xml を以下のように編集します:
    1. 既に SQLSettings タグが存在する場合は、以下の内容に置き換えます。
    2. SQLSettings タグが存在しない場合は、以下の例を参考に追加します。
  5. コマンドプロンプトを開き、引数 /CreateDatabase を付けて DentalDB を実行します。
    1. Note: DentalDB のウィンドウは表示されず、必要なテーブルが作成されるとアプリケーションは終了します。
  6. 必要に応じて、 こちら に記載の手順に従い、データベースのエンコーディングを調整します。
  7. 好みの移行ツールを使用し、ソースに SQLite ファイルを、ターゲットとして上記で設定したデータベースを指定してデータを移行します。

MySQL/MariaDB の設定例

<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 の設定例

SQL Server 認証での接続

推奨される方法

<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>

Windows 認証での接続

<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>

Chosing right character encoding for MariaDB/MySQL

対応するデータベースの文字セットは utf8mb4 を使用してください。そうしないと、(メモ欄など)特定の特殊文字を含むケースが保存に失敗する可能性があります。デフォルトの照合順序 (collation) が既に設定済みでない場合、以下の SQL コマンドを実行して対応する文字セットを設定してください:

ALTER DATABASE dentaldb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ここで、dentaldb は DentalDB ソフトウェアで使用しているデータベース名です。

トラブルシューティング: 初期設定で誤った文字セットを使用していた場合、既存のテーブルを後から utf8mb4 に変換できます:

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;

ここで、dentaldb は DentalDB ソフトウェアで使用しているデータベース名です。これは、正しい文字セットを設定せずにデータベースを運用していた場合にのみ必要となり、後からデータベースを復旧するための手順です。

免責事項

上記の移行手順は、データ損失やデータの正当性に関していかなる保証も行うものではありません。 これらのステップを実行する場合は、自己責任で行ってください。