最初の質問 - 元の ActiveRecord Oracle アダプターまたは oracle_enhanced アダプター ( http://github.com/rsim/oracle-enhanced ) を使用していますか? スキーマ ダンプのパフォーマンスを改善したので、oracle_enhanced アダプターを使用することをお勧めします。
Rails では、スキーマ ダンプの 2 つの方法を提供しています。
rake db:schema:dump
これにより、スキーマ作成用の Rails 移行を含む schema.rb ファイルが作成されます。Oracle の場合、ユーザーのローカル スキーマ (ユーザーは database.yml で指定) 内のすべてのテーブルを検索し、Oracle のデータ型を Rails モデルの属性型に変換しようとします。Rails でサポートされていないデータ型がある場合、それらが失われる可能性があります。ただし、Rails の方法でアプリケーションを再設計する場合は、これが推奨される方法です。前述したように、大規模な Oracle データ ディクショナリの場合 (すべてのスキーマに数千のテーブルがある場合) に、スキーマ ダンプ用の oracle_enhanced アダプターのパフォーマンスを改善しました。
rake db:structure:dump
これにより、他の Oracle データベースで実行できる SQL スキーマ ファイル (例: db/development_structure.sql) が作成されます (これは他のデータベースでは機能しません)。これは、スキーマ ダンプを作成するより高速な方法であり、Oracle 固有のデータ型が失われることはありません。しかし、この方法では、後でこのデータベースで ActiveRecord を使用するときに問題が発生し、一部のデータ型が正しく処理されないことに気付くことがあります。したがって、生の SQL ではなく、Rails 移行を使用してスキーマを維持することをお勧めします。
ただし、既存の Oracle データベースで Rails を使用する場合は、このスキーマを再作成する必要はありません。database.yml をこの既存のデータベース スキーマにポイントするだけで、既存のテーブルの上に ActiveRecord モデルの作成を開始できます。レガシー Oracle データベースで Rails を使用する方法のヒントについては、http://blog.rayapps.com/2008/09/26/openworld-unconference-presentation-about-rails-on-oracle/を参照してください。