[RDSへのデータ移行]2.SCT(AWS Schema Conversion Tool)でスキーマ変換

前回→[[RDSへのデータ移行]1.SCT(AWS Schema Conversion Tool)の設定](https://qiita.com/ghogho-seki/items/cd3b712cc6c4ccb75603)

# 1.スキーマ変換
[スキーマの変換](https://docs.aws.amazon.com/ja_jp/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Overview.ProjectWindow)

- 変換対象スキーマを右クリックし**Convert schema**をクリック
<img width="1433" alt="17.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449014/8af6f8f9-aadd-a846-ec52-af1267ff4e06.png">
- **Yes**をクリック
<img width="500" alt="18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449014/2bc4305b-0e6a-d999-ce57-7509a05291ff.png">
- スキーマ変換が終了すると。プロジェクトの右のパネルでスキーマの候補が表示される
    - この時点では、ターゲットDBにスキーマは**適用されていない**
    - ターゲットDBの下中央パネルに、計画したスキーマコマンドが表示される
<img width="1435" alt="19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449014/559cfbf6-4812-ba88-dbfc-866f3704170a.png">
- ターゲットDB側で対象スキーマを右クリックし**Apply to databse**をクリックしてターゲットDBに変換を適用 
<img width="1437" alt="20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449014/5665f5d3-6ea6-2b58-d950-e85967e2658a.png">
- **Yes**をクリック
<img width="500" alt="21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449014/d8422a8a-9feb-1a5e-4a3b-5afa6816d2fd.png">
- 適用が完了したらスキーマのアイコンが変わる
<img width="1436" alt="22.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449014/a85e0e50-a62c-a9a8-a8a8-d0a1e9a88284.png">
- 移行対象スキーマのテーブルを選択するとSQL文が表示される
<img width="1436" alt="23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449014/a6f23f1d-3820-5ed7-f0d9-5d61073d3a23.png">

# 2.スキーマの確認
- Aurora(PostgresSQL)にログインし**SCOTT**を確認

```sql
-- クラスタにログイン
$ sudo psql --host=targetdb-cluster.cluster-xxxx.ap-northeast-1.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=targetdb
ユーザ postgres のパスワード: 
psql (9.2.24, サーバー 10.7)
注意： psql バージョン 9.2, サーバーバージョン 10.0.
         psql の機能の中で、動作しないものがあるかもしれません。
SSL 接続 (暗号化方式: ECDHE-RSA-AES256-GCM-SHA384, ビット長: 256)
"help" でヘルプを表示します.

targetdb=> 
targetdb=> 

-- DB一覧を確認
targetdb=> \l
                                         データベース一覧
   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |      アクセス権       
-----------+----------+------------------+-------------+-------------------+-----------------------
 postgres  | postgres | UTF8             | en_US.UTF-8 | en_US.UTF-8       | 
 rdsadmin  | rdsadmin | UTF8             | en_US.UTF-8 | en_US.UTF-8       | rdsadmin=CTc/rdsadmin
 targetdb  | postgres | UTF8             | en_US.UTF-8 | en_US.UTF-8       | 
 template0 | rdsadmin | UTF8             | en_US.UTF-8 | en_US.UTF-8       | =c/rdsadmin          +
           |          |                  |             |                   | rdsadmin=CTc/rdsadmin
 template1 | postgres | UTF8             | en_US.UTF-8 | en_US.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
(5 行)

targetdb=> 

-- 現在の実行ユーザの確認
targetdb=> select current_user;
 current_user 
--------------
 postgres
(1 行)

-- 現在の実行スキーマの確認
targetdb=> select current_schema();
 current_schema 
----------------
 public
(1 行)

-- スキーマ一覧確認
targetdb=> \dn
         スキーマ一覧
        名前        |  所有者  
--------------------+----------
 aws_oracle_context | postgres
 aws_oracle_data    | postgres
 aws_oracle_ext     | postgres
 public             | postgres
 scott              | postgres
(5 行)

-- スキーマ切り替え（public　→　scott）
targetdb=> SET search_path = scott;
SET
targetdb=> 

-- 現在の実行スキーマの確認
targetdb=> select current_schema();
 current_schema 
----------------
 scott
(1 行)

-- テーブル一覧確認
targetdb=> \dt;
          リレーションの一覧
 スキーマ | 名前 |    型    |  所有者  
----------+------+----------+----------
 scott    | tbl1 | テーブル | postgres
(1 行)

-- テーブル内のデータを確認
targetdb=> select * from tbl1;
 id | txt 
----+-----
(0 行)

--　接続断
targetdb=> \q
$
```
 - SCOTTとSCOTTのオブジェクト（tbl1表）を確認できた