SCTでスキーマ変換

01


02

  1. DMSHandsonプロジェクトを開いていない場合は上部のアイコン File > Optn project…からC:¥Users¥Administrator¥AWS Schema Conversion Tool¥Projects¥DMSHandson¥DMSHandson.sctを開いてください。

  2. 上部アイコンにConnect to Oracleが表示されている場合は、アイコンをクリックしパスワードに tigertiger を入力してください。

  3. 同様に上部アイコンにConnect to Amazon RDS for PostgreSQLが表示されている場合はアイコンをクリックし、パスワードに tigertiger を入力してください。

  4. 上記に問題がなければ、Schemas > DMS_SAMPLE > Tables > MLB_DATA を選択します。

  5. 上ペインに Oracle の SQL が表示されます。

  6. 上部アイコンの Actions > Convert schema を選択します。

オブジェクトを右クリックしても Actions は選択可能です。


03

  1. Replace?というダイアログが表示される場合やYesボタンをクリックします。

04

  1. 右ペイン(PostgreSQL 側)に Schemas > dms_sample > Tables > mlb_data が追加され、下ペインに PostgreSQL の SQL が表示されます。

  2. データ型などが変換されていることを確認します。

  3. また、オブジェクト名、スキーマ名が大文字から小文字に変換されていることも確認します。


05

  1. 左ペインの Schemas > DMS_SAMPLE を選択し、上部アイコン Actions > Convert schema を選択します。

  2. こちらもReplace?のダイアログにはYesボタンをクリックします。


06

  1. 右ペインにDMS_SAMPLEスキーマのすべてのオブジェクトが追加されたことを確認してください。

  1. 左ペインの Schema > DMS_SAMPLE > Views > SPORTING_EVENT_TICKET_INFO を選択してください。

  2. 外部結合(+)を含む SELECT 文が変換できていることを確認してください。


  1. 左ペインの Schemas > DMS_SAMPLE > Procedures > LOADMLBPLAYERS を選択してください。

  2. Decode を含む Oracle の PL/SQL が問題なく、PostgreSQL の PL/pgSQL に変換できていることを確認してください。


  1. 左ペインの Schemas > DMS_SAMPLE > Packages > TICKETMANAGEMENT > Private functions > GET_OPEN_EVENTS を選択してください。

  2. Oracle の PL/SQL の自動変換できない個所が黄色くハイライトされ、PostgreSQL の PL/pgSQL にはコメントで変換できない理由が書かれていることを確認してください。


07

  1. 右ペインの Schemas > dms_sample を右クリックします。

  2. コンテキストメニューのApply to databaseを選びます。

  3. 表示される Are you sure? のダイアログで Yes を選びます。

  4. Apple to database を実行すると、ターゲットに実際に書き込まれます。


08

  1. DBeaver の PostgreSQL - handson target database > Schemas を右クリックして Refresh を選びます。

  2. dms_sample が追加で表示されることを確認してください。


09

  1. PostgreSQL - handson target database > handson > Schemas > dms_sample > Tables を開きます。

  2. すべてのテーブルが作成されていることを確認してください。


10

  1. mlb_data テーブルをダブルクリックし、Data タブを選択します。

  2. テーブルはまだ空であることを確認します。


  • データ移行時に外部キーが存在するとパフォーマンス低下や移行効率の低下につながるためデータ移行時に外部キーを削除しておきます。

11

  1. DBeaver の PostgreSQL - handson target database を右クリックします。

  2. コンテキストメニューから SQL Editor を選択します。

以下の SQL を 1 行ずつ実行して外部キーを削除します。

alter table dms_sample.player drop constraint sport_team_fk;
alter table dms_sample.sport_league drop constraint sl_sport_type_fk;
alter table dms_sample.sport_team drop constraint home_field_fk;
alter table dms_sample.sport_team drop constraint st_sport_type_fk;
alter table dms_sample.seat drop constraint seat_type_fk;
alter table dms_sample.sporting_event drop constraint se_away_team_id_fk;
alter table dms_sample.sporting_event drop constraint se_home_team_id_fk;
alter table dms_sample.sporting_event drop constraint se_sport_type_fk;
alter table dms_sample.sporting_event_ticket drop constraint set_seat_fk;
alter table dms_sample.sporting_event_ticket drop constraint set_sporting_event_fk;
alter table dms_sample.sporting_event_ticket drop constraint set_person_id;
alter table dms_sample.sport_division drop constraint sd_sport_league_fk;
alter table dms_sample.sport_division drop constraint sd_sport_type_fk;
alter table dms_sample.ticket_purchase_hist drop constraint tph_sport_event_tic_id;
alter table dms_sample.ticket_purchase_hist drop constraint tph_ticketholder_id;
alter table dms_sample.ticket_purchase_hist drop constraint tph_transfer_from_id;

SQL は 1 行ずつ実行してください。