Web版血糖値管理アプリの移行

その他

Windows10搭載で作成したアプリやデータベース移行について、アプリ毎に掲載していきます。

今回は、NET CoreのRazor Pagesで作成したWeb版の血糖値管理アプリとデーターベースの移行について掲載します。

次の順番で移行手順を記述していきます。

  1. MySQLデータベースの移行
  2. Web版血糖値アプリのプロジェクトの移行
  3. Web版血糖値アプリのプロジェクトの動作確認

1.MySQLデータベースの移行

移行元のパソコンでデータベースをエクスポートし、移行先のパソコン(Windows11)でインポートします。
なお、移行元のパソコンはWindows11搭載のノートパソコンです。

エクスポートの手順

コマンドプロンプトを管理者権限で起動します。

1. MySQL関連のコマンド実行ファイルがあるフォルダに移動します。

cd c:\Program Files\mysql\mysql server8.0\bin

binフォルダには、MySQL関連のコマンドの実行ファイルが格納されています。
ちなみに、移行元のノートパソコンはMySQL8.0がインストールされているため、「・・mysql server8.0\bin」になります。

2. データベース(BGC)をエクスポートします。

次のコマンドを実行します。

mysqldump -u root -p –databases bgc>c:\users\****\desktop\mysql_bgc.sql
Enter password: ********

上記コマンドでデータベースbgcの移行用ファイル「mysql_bgc.sql」を作成します。
rootはデータベースの管理者権限を持つユーザーです。
mysqldumpコマンドを実行するとパスワードの入力を求められます。

インポートの手順

1. 「mysql_bgc.sql」を移行先パソコンにコピーします。

    今回は「c:\users\****\desktop\mysql_bgc.sql」にコピーしました。

    2. MySQL関連のコマンド実行ファイルがあるフォルダに移動します。

    cd c:\Program Files\mysql\mysql server5.7\bin

    binフォルダには、MySQL関連のコマンドの実行ファイルが格納されています。
    ちなみに、移行先のWindows11搭載パソコンはMySQL5.7がインストールされているため、「・・mysql server5.7\bin」になります。

    3. インポートします。

    mysql -u root -p <c:\users\****\desktop\mysql_bgc.sql
    Enter password: ********

    上記コマンドでデータベースの作成とテーブルやデータの作成が行われます。
    mysqlマンドを実行するとパスワードの入力を求められます。

    4. 移行が完了したことを確認します。

    MySQL 5.7 Command Line Clientでデータベースが移行されたことを確認します。

    「show databases;」コマンドでデータベースが作成されたことが確認できます。
    「use bgc;」コマンドでデータベースを利用可能にし、
    「select * from value;」コマンドでテーブルデータが移行されていることが確認できます。

    mysql> show databases;
    ERROR 2006 (HY000): MySQL server has gone away
    No connection. Trying to reconnect…
    Connection id: 5
    Current database: *** NONE ***
    
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | bgc |
    +--------------------+
    14 rows in set (0.02 sec)
    
    mysql> use bgc;
    Database changed
    mysql> select * from value;
    +----+---------------------+---------------------+-------------------+----------+---------+---------+------------+
    | id | Date | Time | BloodGlucoseValue | TimeZone | comment | WorkFlg | FastingFlg |
    +----+---------------------+---------------------+-------------------+----------+---------+---------+------------+
    | 1 | 2023-11-18 00:00:00 | 2023-11-18 14:25:00 | 100.00 | 14 | aaaa | | |
    | 2 | 2023-11-16 00:00:00 | 2023-11-23 13:10:00 | 100.00 | 13 | 111 | | |
    | 3 | 2023-11-01 00:00:00 | 2023-11-23 14:49:00 | 100.00 | 14 | 111 | | |
    | 4 | 2023-11-02 00:00:00 | 2023-11-23 14:50:00 | 101.00 | 14 | 111 | | |
    | 5 | 2023-11-03 00:00:00 | 2023-11-23 15:51:00 | 95.00 | 13 | 2222 | | |
    | 6 | 2023-11-04 00:00:00 | 2023-11-23 16:51:00 | 90.00 | 16 | 3333 | | |
    | 7 | 2023-11-05 00:00:00 | 2023-11-23 15:23:00 | 90.00 | 15 | NULL | | |
    | 8 | 2023-11-07 00:00:00 | 2023-11-23 07:53:00 | 125.00 | 7 | NULL | | |
    | 9 | 2023-11-08 00:00:00 | 2023-11-23 12:27:00 | 105.00 | 12 | NULL | | |
    +----+---------------------+---------------------+-------------------+----------+---------+---------+------------+
    9 rows in set (0.00 sec)

    2. Web版血糖値アプリのプロジェクトの移行

    最初に、移行元のパソコンのWeb版血糖値アプリのプロジェクトについて、事前説明をしておきます。

    Web版の血糖値管理アプリはVisual Studio 2022でBGCプロジェクトを作成して、アプリを作成しました。

    フレームワークは.NET7.0を使用しています。

    プロジェクトの実態は、「c:\users\ユーザー名\source\respons\BGC」フォルダになります。
    このフォルダ内のBGC.slnはソリューションファイルといい、Visual Studio 2022でプロジェクトを開くときに指定します。

    このように移行元パソコンで作成したプロジェクトフォルダ「BGC」を移行先パソコンへコピーするのですが、コピーだけでは動作しないので、データベース接続情報の変更やパッケージの更新などを行っていきます。

    手順は、移行先パソコンにBGCフォルダをコピーするところから解説します。

    1. 移行先パソコンにBGCフォルダをコピーします。

    プロジェクトが保存されているBGCフォルダはデフォルトでは
    「c:\users\ユーザー名\source\respons\」内に作成されますが、今回はOneDrive上に保存しました。

    C:\Users\ユーザ名\OneDrive\source\repos\BGC

    2. appsetting.jsonファイルのデータベースコネクト情報を変更します。

    今回の移行では、移行元のデータベース管理者のパスワードと移行先のデータベース管理者のパスワードが異なっているため、appsetting.jsonファイル内のパスワード情報を移行先のデータベース管理者のパスワードに変更します。
    appsetting.jsonファイルはBGCフォルダ直下にあります。
    Visual Studioなどのテキストエディタで開いて変更しても良いですし、Visual Studio 2022でBGCプロジェクトを開き、そのソリューションエクスプローラーから開いて変更しても良いです。
    ただし、ソリューションエクスプローラーから開いて変更する場合は、次の「3. Visual Studio 2022からプロジェクトを開きます。」を行い、BGCプロジェクトを開いて行ってください。
    今回私は、Visual Studioのテキストエディタで変更しました。

    appsetting.jsonの内容は以下のようになっています。

    {
    "PageSize": 4,
    "Logging": {
    "LogLevel": {
    "Default": "Information",
    "Microsoft.AspNetCore": "Warning"
    },
    },
    
    "AllowedHosts": "*",
    "ConnectionStrings": {
    "BGCContext": "Server=localhost;Database=BGC;UserId=root;Password=root"
    }
    }

    12行目の<Password>の部分に移行元のデータベース管理者のパスワードが記載されているので、移行先のパスワードに変更します。
    “BGCContext”: “Server=localhost;Database=BGC;UserId=root;Password=root”

    3. Visual Studio 2022からプロジェクトを開きます。

    Visual Studio 2022を起動し[プロジェクトやソリューションを開く]をクリックし、「C:\Users\ユーザー名\OneDrive\source\repos\BGC」フォルダ内の「BGC.sln」ファイルを指定します。
    BGCプロジェクトの画面が表示されます。

    4. NuGet パッケージマネージャーで依存関係の更新をします。

    プロジェクトは様々なパッケージ(ライブラリ)を使用しているため、パッケージのインストールやパッケージの依存関係(パッケージ間のバージョンの組み合わせなど)を更新します。

    [ツール] >[NuGetパッケージマネージャー] > [ソリューションのNuGetパッケージの管理]を選択します。

    下記の画面が表示されるので、
    [すべてのパッケージを選択]にチェックを入れ、[更新]ボタンをクリックします。
    インストールが開始されます。
    その際、ライセンスの同意を求められますので、[同意する]を選択します。

    私の場合、NuGetパッケージを更新した結果、次のエラーが表示されました。

    パッケージ Microsoft.EntityFrameworkCore.SqlServer 9.0.2 は net7.0 (.NETCoreApp,Version=v7.0) と互換性がありません。 パッケージ Microsoft.EntityFrameworkCore.SqlServer 9.0.2 がサポートするもの: net8.0 (.NETCoreApp,Version=v8.0)

    パッケージ間のバージョンの組み合わせに問題があり、
    フレームワークの「.NET7.0」は使えないので「.NET8.0」を使用するように、という内容です。

    5. フレームワーク.NET7.0を.NET8.0に変更します。

    次の手順で、フレームワーク.NET7.0を.NET8.0に変更します。

    • ソリューションエクスプローラーで、対象のプロジェクトを右クリックし、「プロパティ」を選択します。
    • 「アプリケーション」タブで、「ターゲットフレームワーク」を探します。
    • ドロップダウンリストから .NET 8.0(または対応する選択肢)を選択します。
    • 変更を保存し、プロジェクトを再ビルドします。

    以下、画面例です。

    ソリューションのビルドを選択します。
    ビルドしてエラーが発生しなければ、OKです。

    3. Web版血糖値アプリのプロジェクトを動かして動作確認します。

    プロジェクトを実行し、動作確認をします。

    以上で、Web版血糖値アプリの移行は完了です。

    ※NuGetパッケージとは
    NuGetパッケージとは、.NET開発環境で使用されるパッケージ管理システムを介して配布されるソフトウェアコンポーネントです。これらのパッケージには、再利用可能なコード、ライブラリ、リソースファイルなどが含まれており、開発者が自分のプロジェクトに簡単に追加できるよう設計されています。

    主な特徴
    コードの再利用: 開発者が他のプロジェクトで作成されたライブラリを簡単に取り入れて再利用できます。
    依存関係の管理: パッケージは他のパッケージに依存する場合がありますが、NuGetがこれを自動的に管理します。
    簡単なインストールと更新: コマンドラインやVisual StudioのUIを使用して、簡単にパッケージをインストール、更新、削除できます。

    タイトルとURLをコピーしました