2

Enteprise Architectを使用してSybaseからOracleにデータベーススキーマを移行しようとしています。Enteprise architect - モデル全体のデータ型を変更します

プロセスは以下の通りです:

  • のSybaseからインポートテーブル、
  • 変更スキーマDDLとして
  • 、(追加、削除、 列の名前を変更し、データ型を変更...)必要な輸出スキーマ(などテーブル、キーなどを作成する - dump.sql)。

しかし、EAは「プラットフォームに応じて」データ型を変更しないという問題を発見しました。たとえば、Sybaseは 'datetime'を使用しており、Oracleのタイムスタンプが必要です。

モデル全体で1つのデータ型を変更する方法はありますか?

はい、生成されたdump.sqlにはCtrl + Hを使用して、これらのデータ型を交換する方法があるが、私は(私はEAに対応しているしたいと思いEAにいくつかの「クリーン」方法を見つけたいですOracleデータベースを後方にインポートすることなくスキーマを作成することができます)。

ありがとうございました!

答えて

1

このような変換を行うには、大幅な変更を行うため、「クリーン」な方法はありません。とにかく行くには2つの方法:

  1. は、APIを使用して:XML結果に今

    Repository.SQLQuery("SELECT ea_guid FROM t_attribute WHERE stereotype = 'column' AND type='datetime'") 
    

    t_attributeの要素を見つけるには応じて属性を読み、タイプ変更:

    attr = Repository.GetAttributeByGUID(<theGuid>) 
    attr.type = 'timestamp' 
    attr.update() 
    
  2. 直接SQLとネイティブDBクライアントで上記を実行してください:

    UPDATE t_attribute SET type='timestamp' WHERE stereotype = 'column' AND type='datetime' 
    

第1の変形は少しクリーナーですが、第2の変形は安全ではありません。実稼働の前にレポをコピーしてください。

+0

ありがとう、私はそれを試してみます。 しかし、それをEAで直接変更する方法はありませんか?私はEAでいくつかのデータ型マッピングを見つけましたが、それは私のためには機能しません。 – juditth

+0

質問を編集し、そのデータ型マッピングの使い方を記述できますか? –

+0

私は、データ型マッピングが変換で使用されると思います。データベースモデルをあるデータベースタイプから別のデータベースタイプに変換する可能性があるはずですが、どのように正確に覚えていません。 –

0

最後に、プロジェクトをXMLとしてエクスポートし、必要なすべてのデータ型をoracleに置き換えて解決しました。それを再びプロジェクトにインポートしました。

アドバイスいただきありがとうございます。

J.

関連する問題