sql >> データベース >  >> RDS >> PostgreSQL

AWSDMSを使用した移行後にPostgreSQLプライマリキーシーケンスが失われました

    @a_horse_with_no_nameが正しい方向を示し、AWSとチャットした後、少なくともAWS Database Migration Service(DMS)を使用している場合は、自分の質問に答えることができます。

    問題は、DMSはデータ自体にのみ焦点を当てており、実際にはスキーマには焦点を当てていないことです(特に、同じデータベーステクノロジを使用している場合は、これは大きな見落としのように見えますが、それは別の問題です)。したがって、スキーマ自体は移行されません。ドキュメントはこれを実際には明確にしていません。

    この問題を修正するには:

    1. 既存のAWSDMS移行を停止します(まだ存在する場合)
    2. 既存の移行済みデータベースを削除し、使用する新しい空のスキーマを作成します
    3. こちらの手順に従います https://docs.aws。 amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html Amazon Schema Conversation Tool(SCT)をインストールしてセットアップするには
    4. 両方のデータベースに接続したら、次の手順に従います https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html スキーマを「変換」する(すべてが確実にカバーされるように、このデータベースの「パブリック」スキーマ全体を実行しました
    5. AWS DMS移行を作成または変更し、ターゲットテーブル準備モード="TRUNCATE"を確認し、ターゲットデータベースの外部キーを無効にします。変更する場合は、「再開」を求められたら再開しないようにしてください

    私がまだテストしていないのは、ライブデータベースを移行しているという事実をどのように処理するかです。そのため、移行が行われたときに、シーケンスがターゲットデータベースで古くなっている可能性があります。後でSCTに入り、シーケンスを移行することしかできないと思いますが、これはまだテストしていません。



    1. MySQLは度、分、秒を小数に変換します

    2. コンテナの外部でjtaデータソースを定義する

    3. Oracleのようなmysqlの切り捨て日付フィールド

    4. 指定された点と重なるすべての点(半径のある円)を取得します