[DBMoto]レプリケーションエクスポート機能でレプリケーションを移行


DBMotoには、開発環境で作成したレプリケーションを、スキーマが異なるだけでテーブル構造がまったく一緒の運用環境にコピーできる機能が用意されています。

それが今回の記事で紹介するレプリケーションエクスポート機能です。

この機能では指定したソースデータベースとターゲットデータベース間にあるレプリケーションを、同じインスタンスの別スキーマ、別インスタンス、さらには別種のデータベース間にもコピーが可能です。

設定はもちろん、マッピング、スクリプトも引き継ぐことができます。
特定のレプリケーションをコピーしない選択をすることもできます。

それでは具体的な設定方法を以下に紹介します。

設定例

  • 元のソースデータベース/スキーマ:Oracle 11g/OKAMOTO
  • 元のターゲットデータベース/スキーマ:SQL Server/(dbo)OKAMOTO
  • 先のソースデータベース/スキーマ:Oracle 11g RAC/STUDY
  • 先のターゲットデータベース/スキーマ:SQL Server/(dbo)STUDY

※いずれのデータベース/スキーマも、事前にDBMoto上に登録してください。


  1. Data Replicatorを停止します。
  2. ソース接続またはターゲット接続の「データベース名」または「スキーマ名」上で右クリックします。
    開いたメニューから「レプリケーションをエクスポート」を選択します。
  3. 000

  4. 以下のウィザードが開きます。「次へ」をクリックします。
  5. 001

  6. 既存のソース接続で、データベースとスキーマを選択します。
  7. 002

  8. 既存のターゲット接続で、データベースとスキーマを選択します。
  9. 003

  10. 新規のソース接続で、エクスポートで作成されるレプリケーションの、ソースとなるデータベースおよびスキーマを選択します。
  11. 004

  12. 新規のターゲット接続で、エクスポートで作成されるレプリケーションの、ターゲットとなるデータベースおよびスキーマを選択します。
  13. 005

  14. 「4」と「5」で指定したデータベース・スキーマ間にあるレプリケーションの一覧が表示されます。
    この中からエクスポート対象とするレプリケーションを選択します。
  15. 006

  16. エクスポート先のテーブル名が、オリジナルのテーブル名と異なる場合は「テーブル」欄のボタンから開くウィザードにて、テーブル名を指定できます。
  17. 007

  18. 最後にサマリーが表示されます。「開始」をクリックするとセットアップが始まります。
  19. 009

  20. 進捗が表示され、プログレスバーが右端まで進めば終了です。
  21. 010

  22. エクスポート機能で作成されたレプリケーションには「(オリジナルのレプリケーション名)_EXP」という名前が設定されます。適宜変更を加えることが可能です。
  23. 011


なお、使用時には以下の点にご注意ください。

  • データベース側でなく、DBMoto側で定義したPK(擬似PK)の設定は引き継がれません。
    これはレプリケーションで指定するのではなく、テーブルで指定する設定のためです。
  • フィールドの型やサイズといった、テーブル構造がエクスポート元と先で一致していないと、そのレプリケーションはエクスポートされません。
  • エクスポート先のスキーマにテーブルが存在しない場合もエクスポートされません。テーブルを自動的に作成することはありません。
関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください