2025年6月19日木曜日

Oracle Database Freeのコンテナをアップグレードするためにデータを移行する

最近はLLMの性能が上がったことにより、LM StudioやOllamaといったローカルLLMサーバーが十分使えるようになったと感じます。Oracle APEXのアプリケーションからローカルLLMサーバーを呼び出すときは、Oracle APEXの環境もローカルに作成した方が便利です。(ngrokを使ってローカルLLMサーバーを呼び出すこともできます - Plamen Mushkovさんの記事 APEX in the AI eraを参照のこと)。

macOSのpodmanを使って、ローカルで動作するAPEX環境を作成する手順について、以前に記事を書いています。

podmanを使ってOracle Database FreeとOracle REST Data Servicesをコンテナとして実行する

この記事の手順に沿ってAPEX環境を作るとpodmanのポッドとしてapexが作成され、その中にOracle Database Freeが動くコンテナとしてapex-db、ORDSが動くコンテナとしてapex-ordsが作成されます。

今回の記事では、コンテナapex-dbで動作するOracle Database Free 23aiをアップグレードする際に、既存のデータベースから新規に作成するデータベースに、データを移行する手順を確認します。移行対象は以下の3種類です。
  • データベース・オブジェクトとデータ
  • APEXのワークスペースとアプリケーション
  • ORDSのサービスやOAuth2クライアント
Oracle Database Freeのコンテナですが、/opt/oracle/oradataにコンテナの外にあるボリュームまたはファイル・システムをマウントすることにより、コンテナを削除して再作成してもデータ・ファイルを維持できます。しかし、catpatch.sqlで適用できるような差分がコンテナに含まれていない(見つからなかった)ため、インプレースでデータベースをアップグレードできません。

結果としてOracle Database Freeをアップグレード(例えば23.7から23.8など)するには、以下の作業が必要になります。
  1. 既存のデータベースから必要なデータをすべてエクスポートする。
  2. コンテナを削除する。
  3. アップグレードされたOracle Database Freeを含むコンテナを新規作成する。
  4. 新規作成したデータベースに1でエクスポートしたデータをインポートする。
本記事はPhilipp Hartenfellerさんの以下の記事を元にしています。作業の流れは同じですが前提としている環境が異なるため、個々に実行するコマンドは異なっています。

Upgrading from Oracle 23c FREE to 23ai
https://hartenfeller.dev/blog/upgrade-oracle-23c-free-to-23ai-docker

以下より、移行作業について記述します。

移行対象のデータベースにはAPEXワークスペースとしてAPEXDEVがあり、そのワークスペースのパーシング・スキーマとしてWKSP_APEXDEVがある環境を前提とします。ワークスペース名やスキーマ名が異なる場合は、それぞれの名前を置き換えて作業を進めてください。

DataPumpによるエクスポートやインポート、APEXのワークスペースやアプリケーションのエクスポートはSQLclで実行します。そのため、最初にSQLclを最新版にアップデートします。

SQLclは、以下から最新版をダウンロードできます。



https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip

ORDSのコンテナを停止します。データベースへの接続がなくなります。

podman stop apex-ords

apex-podman-setup % podman stop apex-ords

apex-ords

apex-podman-setup % 


リポジトリapex-podman-setupに含まれるスクリプトconfig_apex.shで作成するコンテナapex-dbは、以下の条件で作成されています。

コンテナapex-dbのボリュームに関する設定:
      volumeMounts:
        - name: oradata-pvc
          mountPath: /opt/oracle/oradata
        - name: apex-volume
          mountPath: /opt/oracle/apex
ボリュームに関する設定:
  volumes:
    - name: oradata-pvc
      persistentVolumeClaim:
        claimName: oradata

    - name: ords_config-pvc
      persistentVolumeClaim:
        claimName: ords_config

    - name: apex-volume
      hostPath:
        path: /Users/***********/Documents/apex-podman-setup/apex
        type: Directory
2025年5月より、コンテナapex-dbの/opt/oracle/apexにローカル・ファイルシステムの./apex-podman-apex/apexをマウントするようにしています。./apex-podman-apex/apex以下にはAPEXのインストール・イメージを展開していますが、そのディレクトリはコンテナapex-dbから/opt/oracle/apexとしてアクセスできるようになっています。

./apex-podman-apex/apex以下に、各種データのエクスポート先となるディレクトリとしてMIGRATEを作成します。

mkdir apex/MIGRATE

apex-podman-setup % mkdir apex/MIGRATE

apex-podman-setup % 


SQLclでPDBのFREEPDB1に接続します。接続ユーザーはSYSです。

sql sys/[SYSのパスワード]@localhost/freepdb1 as sysdba


apex-podman-setup % sql sys/*******@localhost/freepdb1 as sysdba



SQLcl: 木 6月 19 14:08:51 2025のリリース25.1 Production


Copyright (c) 1982, 2025, Oracle.  All rights reserved.


接続先:

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04


SQL> 


DataPumpのエスクポートに使用するディレクトリ・オブジェクトとしてDP_DIRを作成します。DP_DIRに割り当てるディレクトリは/opt/oracle/apex/MIGRATEです。

create or replace directory dp_dir as '/opt/oracle/apex/MIGRATE';

SQL> create or replace directory dp_dir as '/opt/oracle/apex/MIGRATE';


Directory DP_DIRは作成されました。


SQL> 


スキーマWKSP_APEXDEVをエクスポートします。

datapump export -schemas WKSP_APEXDEV -directory DP_DIR -version latest

SQL> datapump export -schemas WKSP_APEXDEV -directory DP_DIR -version latest

DATA PUMPの開始

データベースのタイム・ゾーン: VERSION:43 CON_ID:0

ログの場所: DP_DIR:ESQL_122.LOG

"SYS"."ESQL_122"を起動しています: 

オブジェクト型SCHEMA_EXPORT/TABLE/TABLE_DATAの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSの処理中です

オブジェクト型SCHEMA_EXPORT/USERの処理中です

オブジェクト型SCHEMA_EXPORT/SYSTEM_GRANTの処理中です

オブジェクト型SCHEMA_EXPORT/DEFAULT_ROLEの処理中です

オブジェクト型SCHEMA_EXPORT/TABLESPACE_QUOTAの処理中です

オブジェクト型SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA/LOGREPの処理中です

オブジェクト型SCHEMA_EXPORT/SEQUENCE/SEQUENCEの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/TABLEの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/IDENTITY_COLUMNの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/TRIGGERの処理中です

. . "WKSP_APEXDEV"."CAR_SPEED"                   34.3 KB     610行がエクスポートされました

. . "WKSP_APEXDEV"."CAR_SPEED_BACK"              34.3 KB     610行がエクスポートされました

. . "WKSP_APEXDEV"."CAR_SPEED_JA"                34.3 KB     610行がエクスポートされました

. . "WKSP_APEXDEV"."EBA_TASKS_SS"                20.4 KB      73行がエクスポートされました

. . "WKSP_APEXDEV"."SAMPLE_TASKS"                   0 KB       0行がエクスポートされました

. . "WKSP_APEXDEV"."CAR_SPEED_A"                  7.8 KB       1行がエクスポートされました

. . "WKSP_APEXDEV"."DEPT"                         6.1 KB       4行がエクスポートされました

. . "WKSP_APEXDEV"."EMP"                            9 KB      14行がエクスポートされました

マスター表"SYS"."ESQL_122"は正常にロード/アンロードされました

******************************************************************************

SYS.ESQL_122に設定されたダンプ・ファイルは次のとおりです:

  /opt/oracle/apex/MIGRATE/ESQL_122.DMP

ジョブ"SYS"."ESQL_122"が木 6月 19 05:14:39 2025 elapsed 0 00:00:15で正常に完了しました

データポンプ操作ステータス COMPLETED'

Jobname = ESQL_122

SQL> exit

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04から切断されました

apex-podman-setup % 


ダンプ・ファイル名(上記のログでは/opt/oracle/apex/MIGRATE/ESQL_122.DMP)を覚えておきます。このファイル名はインポートする際に指定します。

SQLclを終了し、カレント・ディレクトリをapex/MIGRATEに移動します。これから作業するAPEXやORDSのエクスポートの出力先になります。

cd apex/MIGRATE

apex-podman-setup % cd apex/MIGRATE 

MIGRATE % 


SQLclでPDBのFREEPDB1に接続します。接続ユーザーはパーシング・スキーマであるWKSP_APEXDEVです。

sql wksp_apexdev/[パスワード]@localhost/freepdb1

MIGRATE % sql wksp_apexdev/oracle@localhost/freepdb1



SQLcl: 木 6月 19 14:22:24 2025のリリース25.1 Production


Copyright (c) 1982, 2025, Oracle.  All rights reserved.


接続先:

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04


SQL> 


APEXワークスペースをエクスポートします。

apex export-all-workspaces

Exporting Workspaceに続く数値がワークスペースAPEXDEVワークスペースIDです。Fileに続くwで始まるSQLファイルが、エクスポートされたワークスペースであるSQLファイルです。

このSQLファイルを実行することにより、新たな環境にワークスペースを復元できます。

SQL> apex export-all-workspaces

Exporting Workspace 7236383262984313:'APEXDEV' 

File w7236383262984313.sql created


SQL> 


エクスポートされたワークスペースに含まれる、すべてのAPEXアプリケーションをエクスポートします。

apex export-all-applications -woi [ワークスペースID]

APEXアプリケーションがSQLファイルとしてエクスポートされます。これらのSQLファイルを実行することにより、ワークスペースにAPEXアプリケーションを復元できます。

SQL> apex export-all-applications -woi 7236383262984313

Exporting Workspace APEXDEV - application 100:Open Page

File f100.sql created

Exporting Workspace APEXDEV - application 101:master detail

File f101.sql created

Exporting Workspace APEXDEV - application 102:RoboBrain2.0 Simple Inference

File f102.sql created

Exporting Workspace APEXDEV - application 105:Open Form

File f105.sql created

Exporting Workspace APEXDEV - application 107:Car Speed

File f107.sql created


SQL> exit

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04から切断されました

MIGRATE % 


以上でSQLclを終了します。

ORDSの設定をエクスポートします。これはパッケージORDS_EXPORT_ADMINに含まれるファンクションEXPORT_SCHEMAを呼び出します。

以下の内容でファイルexport_rest.sqlを作成します。

set serveroutput on
set feedback off
set echo off
set verify off
spool &2
declare
l_exported_script clob;
begin
l_exported_script := ords_export_admin.export_schema('&1');
dbms_output.put_line(l_exported_script);
end;
/
exit;
view raw export_rest.sql hosted with ❤ by GitHub

ユーザーSYSFREEPDB1に接続し、export_rest.sqlを実行します。第1引数はエクスポートの対象スキーマ、第2引数が出力するファイル名になります。

sql sys/[SYSのパスワード]@localhost/freepdb1 as sysdba @export_rest WKSP_APEXDEV ords.sql

第2引数にords.sqlとしているため、ords.sqlがエクスポート・ファイルになります。これを実行することで、新しい環境にORDSの設定を復元できます。

MIGRATE % sql sys/*********@localhost/freepdb1 as sysdba @export_rest WKSP_APEXDEV ords.sql



SQLcl: 木 6月 19 14:44:57 2025のリリース25.1 Production


Copyright (c) 1982, 2025, Oracle.  All rights reserved.


接続先:

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04



-- Generated by ORDS REST Data Services 25.1.1.r1411642

-- Schema: WKSP_APEXDEV  Date: 木 6月  19 05:44:58 2025 

--

        

DECLARE

  l_roles     OWA.VC_ARR;

  l_modules   OWA.VC_ARR;

  l_patterns  OWA.VC_ARR;


BEGIN

  ORDS_ADMIN.ENABLE_SCHEMA(

      p_schema => 'WKSP_APEXDEV',

      p_enabled             => TRUE,

      p_url_mapping_type    => 'BASE_PATH',

      p_url_mapping_pattern => 'apexdev',

      p_auto_rest_auth      => FALSE);


  ORDS_ADMIN.DEFINE_MODULE(

      p_schema => 'WKSP_APEXDEV',

      p_module_name    => 'oracle.example.hr',

      p_base_path      => '/hr/',

      p_items_per_page => 25,

      p_status         => 'PUBLISHED',

      p_comments       => NULL);



[中略]



  ORDS_ADMIN.DEFINE_PRIVILEGE(

      p_schema => 'WKSP_APEXDEV',

      p_privilege_name => 'oracle.soda.privilege.developer',

      p_roles          => l_roles,

      p_patterns       => l_patterns,

      p_modules        => l_modules,

      p_label          => NULL,

      p_description    => NULL,

      p_comments       => NULL); 


  l_roles.DELETE;

  l_modules.DELETE;

  l_patterns.DELETE;



COMMIT;


END;


Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04から切断されました

MIGRATE % 


以上でエクスポート作業は完了です。

ポッドapexの削除と再作成を実行します。config_apex.shは実行時に最新のコンテナ・イメージを参照するため、Oracle Database FreeやOracle REST Data Servicesは、その時点での最新のコンテナ・イメージで作り直されます。

podman pod stop apex
podman pod rm apex
podman volume rm oradata
podman volume rm ords_config
sh config_apex.sh [DBのSYSパスワード] [APEXのADMINパスワード]

apex-podman-setup % podman pod stop apex

apex

apex-podman-setup % podman pod rm apex

939d5f927aa74e97b872ce11cb10349e64a6c4c090ab611d6dcb07dd936ad68d

apex-podman-setup % podman volume rm oradata

oradata

apex-podman-setup % podman volume rm ords_config

ords_config

apex-podman-setup % sh config_apex.sh ******** ********

APEX VERSION detected:  24.2.0 APEX_240200

oradata

ords_config

May take some time if Oracle Database Free or ORDS container image is not latest.

Pod:

45119930b0efc2c351e98ca6a64e848d859cca13149dacc9e98a11abcd1204ce

Containers:

0fb66c4a307836fe2ab422673a1bb2e4c12c993efd6d896f3e1711fed810ec6b

e4352714adf57e6e3f32fa1b0c88dc5345112b59a0e0ec3b3a0bc25db01f525f


[中略]


ORDS: Release 25.1 Production on Thu Jun 19 05:58:32 2025


Copyright (c) 2010, 2025, Oracle.


Configuration:

  /etc/ords/config


The global setting named: standalone.static.path was set to: /opt/oracle/apex/images

apex

apex

apex-podman-setup % 


config_apex.shの実行が終了すると、最新のOracle Database FreeとORDSによる環境に刷新されています。

SQLclでFREEPDB1に接続し、スキーマWKSP_APEXDEVをインポートします。接続ユーザーはSYSです。

sql sys/[SYSのパスワード]@localhost/freepdb1 as sysdba

apex-podman-setup % sql sys/********@localhost/freepdb1 as sysdba



SQLcl: 木 6月 19 15:02:11 2025のリリース25.1 Production


Copyright (c) 1982, 2025, Oracle.  All rights reserved.


接続先:

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04


SQL> 


ダンプ・ファイルのアクセスに使用するディレクトリDP_DIRを作成します。

create or replace directory dp_dir as '/opt/oracle/apex/MIGRATE';

SQL> create or replace directory dp_dir as '/opt/oracle/apex/MIGRATE';


Directory DP_DIRは作成されました。


SQL> 


先ほどエクスポートを実行して作成されたダンプファイル(今回の例ではESQL_122.DMP)をインポートします。

datapump import -schemas WKSP_APEXDEV -directory DP_DIR -dumpfile ESQL_122.DMP -version latest

SQL> datapump import -schemas WKSP_APEXDEV -directory DP_DIR -dumpfile ESQL_122.DMP -version latest

DATA PUMPの開始

データベースのタイム・ゾーン: VERSION:43 CON_ID:0

ログの場所: DP_DIR:ISQL_2.LOG

マスター表"SYS"."ISQL_2"は正常にロード/アンロードされました

"SYS"."ISQL_2"を起動しています: 

オブジェクト型SCHEMA_EXPORT/USERの処理中です

オブジェクト型SCHEMA_EXPORT/SYSTEM_GRANTの処理中です

オブジェクト型SCHEMA_EXPORT/DEFAULT_ROLEの処理中です

オブジェクト型SCHEMA_EXPORT/TABLESPACE_QUOTAの処理中です

オブジェクト型SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA/LOGREPの処理中です

オブジェクト型SCHEMA_EXPORT/SEQUENCE/SEQUENCEの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/TABLEの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/TABLE_DATAの処理中です

. . "WKSP_APEXDEV"."CAR_SPEED"                   34.3 KB     610行がインポートされました

. . "WKSP_APEXDEV"."CAR_SPEED_BACK"              34.3 KB     610行がインポートされました

. . "WKSP_APEXDEV"."CAR_SPEED_JA"                34.3 KB     610行がインポートされました

. . "WKSP_APEXDEV"."EBA_TASKS_SS"                20.4 KB      73行がインポートされました

. . "WKSP_APEXDEV"."SAMPLE_TASKS"                   0 KB       0行がインポートされました

. . "WKSP_APEXDEV"."CAR_SPEED_A"                  7.8 KB       1行がインポートされました

. . "WKSP_APEXDEV"."DEPT"                         6.1 KB       4行がインポートされました

. . "WKSP_APEXDEV"."EMP"                            9 KB      14行がインポートされました

オブジェクト型SCHEMA_EXPORT/TABLE/IDENTITY_COLUMNの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/TRIGGERの処理中です

オブジェクト型SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSの処理中です

ジョブ"SYS"."ISQL_2"が木 6月 19 06:06:23 2025 elapsed 0 00:00:09で正常に完了しました

データポンプ操作ステータス COMPLETED'

Jobname = ISQL_2

SQL> exit

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04から切断されました

apex-podman-setup % 


ディレクトリapex/MIGRATEに移動し、APEXワークスペースやアプリケーションおよびORDSの設定をインポートします。

cd apex/MIGRATE

% cd apex/MIGRATE

MIGRATE % 


最初に以下のコマンドを実行し、install-all.sqlを作成します。
for f in w*.sql f*.sql
do
echo @$f
done > install-all.sql
結果として以下のような記述を含むファイルinstall-all.sqlが作成されます。
@w7236383262984313.sql
@f100.sql
@f101.sql
@f102.sql
@f105.sql
@f107.sql
DataPumpのインポートにより復元されたユーザーWKSP_APEXDEVに、ロールAPEX_ADMINISTRATOR_ROLEを割り当てます。

grant apex_administrator_role to wksp_apexdev;

MIGRATE % sql sys/*******@localhost/freepdb1 as sysdba



SQLcl: 木 6月 19 15:15:40 2025のリリース25.1 Production


Copyright (c) 1982, 2025, Oracle.  All rights reserved.


接続先:

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04


SQL> grant apex_administrator_role to wksp_apexdev;


Grantが正常に実行されました。


SQL> exit

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04から切断されました

MIGRATE % 


install-apex.sqlを実行し、APEXのワークスペースとアプリケーションをインポートします。

sql wksp_apexdev/*******@localhost/freepdb1 @install-all.sql

f100.sqlといったAPEXアプリケーションのエクスポート・ファイルには以下の記述が含まれます。

whenever sqlerror exit sql.sqlcode rollback

SQLファイルの実行中にエラーが発生するとその時点で処理が中断し、SQLclが終了します。そのため、後続のスクリプトは実行されません。エラーの発生がなければ最後にSQL入力のプロンプトに戻るので、exitを入力してSQLclを終了します。

MIGRATE % sql wksp_apexdev/*******@localhost/freepdb1 @install-all.sql



SQLcl: 木 6月 19 15:19:21 2025のリリース25.1 Production


Copyright (c) 1982, 2025, Oracle.  All rights reserved.


接続先:

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04


--application/set_environment

WORKSPACE 7236383262984313

Creating workspace APEXDEV...

Creating Groups...

Creating group grants...

Creating Users...

...RESTful Services

SCHEMA WKSP_APEXDEV - User Interface Defaults, Table Defaults

User Interface Defaults, Attribute Dictionary

...done

--application/set_environment

APPLICATION 100 - Open Page

--application/delete_application

--application/create_application

--application/user_interfaces


[中略]


--application/user_interfaces/combined_files

--application/pages/page_00000

--application/pages/page_00001

--application/pages/page_00002

--application/pages/page_00003

--application/pages/page_00004

--application/pages/page_00005

--application/pages/page_00006

--application/pages/page_09999

--application/deployment/definition

--application/deployment/checks

--application/deployment/buildoptions

--application/end_environment

...done

SQL> exit

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04から切断されました

MIGRATE %


ORDSの設定を復元します。ユーザーSYSで接続して実行します。

sql sys/[SYSのパスワード]@localhost/freepdb1 as sysdba
@ords.sql
/
exit;

@ords.sqlの入力後に/(スラッシュ)を入力して、ords.sqlに含まれるPL/SQLブロックを実行します。

MIGRATE % sql sys/oracle@localhost/freepdb1 as sysdba



SQLcl: 木 6月 19 15:24:45 2025のリリース25.1 Production


Copyright (c) 1982, 2025, Oracle.  All rights reserved.


接続先:

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04


SQL> @ords.sql

>....                                                                                                             383        p_bind_variable_name => 'deptno',

384        p_source_type        => 'HEADER',

385        p_param_type         => 'INT',

386        p_access_method      => 'IN',

387        p_comments           => NULL);

388  

389    ORDS_ADMIN.CREATE_ROLE(

390        p_schema => 'WKSP_APEXDEV',

391        p_role_name=> 'oracle.dbtools.role.autorest.WKSP_APEXDEV');


[中略]


428  

429  

430  COMMIT;

431  

432  END;

433* /


PL/SQLプロシージャが正常に完了しました。


SQL> exit

Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

Version 23.8.0.25.04から切断されました

MIGRATE % 


以上でインポート作業はすべて完了です。