SCTのインストール
準備
SCTインストールイメージのダウンロード
AWSのサイトから最新のSchema Conversion Toolをダウンロードしますhttps://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html
JDBCドライバーの準備
ソースDB, ターゲットDB用のJDBCドライバーを準備しておきます
SCTのインストール
JDBCドライバーの配置
ソース, ターゲットの接続に使うJDBCドライバーを配置する
SCTのJDBCドライバーの設定
Settings → Global settingsで指定する
SCTの設定
プロジェクトを作成して設定する。
プロジェクトをオープンした画面
ソースDBの接続
「Add source」を押して設定する
DBを選択
接続情報を入力
接続テスト
設定反映
「connect」を押して保管する。(もう一度確認が発生)
メイン画面で、Sourceのアイコンが接続状態(緑)に変わった。
ターゲットDBの接続
「Add target」を押して設定する
DBを選択
接続情報を入力
接続テスト
設定反映
「connect」を押して保管する。
メイン画面で、Sourceのアイコンが接続状態(緑)に変わった。
移行プロジェクトの設定
スキーマの変換
移行対象のスキーマ上のコンテキストメニュー(右クリック)から、「Convert schema」を選択して、スキーマ変換を開始する
変換が開始される
参考:2回目以降の実行の場合、確認が出る
![image.png](https://qiita-image-store.s3.ap-northeast-
変換終了後、ターゲットDBの対象スキーマを展開して、最新状況「Refresh from database」で変換されたスキーマの存在を確認する
1.amazonaws.com/0/3802444/2167dc53-460a-ba4b-ce33-adfd579e1921.png)
ターゲットDBへの反映
「Apply to database」でターゲットDBに反映する
移行後の確認
SCTのTarget上で反映されたテーブルの存在を実際に確認する。
PSQLやA5SQL等のツールで確認する。
接続ユーザに対する権限付与
変換を行ったユーザ(今回はadminpg)と異なるユーザで利用する場合、利用ユーザに対して、権限の付与が必要。以下はPSQLを使った例。publicと対象スキーマの利用権限を付与する。
psql -h ターゲットDBのアドレス -p 5432 -U adminpg -d pgdb01
GRANT usage ON schema apl,public TO apl
GRANT SELECT,insert,delete,update ON ALL TABLES IN SCHEMA apl TO apl;
GRANT SELECT,insert,delete,update ON ALL TABLES IN SCHEMA public TO apl;
利用ユーザによる確認
psql -h ターゲットDBのアドレス -p 5432 -U apl -d pgdb01
SET search_path TO apl;
\dt
\dtの表示例
リレーション一覧
スキーマ | 名前 | タイプ | 所有者
----------+----------+----------+--------
apl | table080 | テーブル | apl
apl | table101 | テーブル | apl
apl | table102 | テーブル | apl
...
その他
データの移行はAWSのサービスDatabase Migration Serviceを使います。
DMSにもスキーマ変換の機能があり、利用できるが、できることに若干の制限があります。この検証を行った時点(2024/10月)では、テーブルのコメントが反映されないことは確認されてます。