1

ActiveRecord 経由で SchemaExport を使用しています。デフォルトでは、次のようなテーブルが生成されます。

create table List (
  Id      UNIQUEIDENTIFIER   not null,
  Name    NVARCHAR(255)   null,
  OwnerId UNIQUEIDENTIFIER   null,
    primary key ( Id ))

その後、SQL Server はデフォルトで主キーのクラスター化インデックスを追加します。しかし、私はこれを非クラスター化したいと考えています。これははるかに効率的であるため、クラスター化されたインデックスを OwnerId に追加したいと考えています。

これで、後でスクリプトを実行して非クラスター化インデックスを作成できるようになりました。これには、元の主キー制約を削除し、クラスター化されていないものを追加する必要があります。ただし、SchemaExport はすでにすべての外部キー制約を作成しているため、主キーを削除できません。

そのため、FK4BAD9607D2BEDDB5 のような役に立たない名前を持つ外部キーを削除してから、それらを再作成する必要があります (これを自動的にやり直すことはできますか?)。それはすべて少し頭痛の種です。

どうにかしてそこに入り、主キーが生成するときに非クラスター化仕様を主キーに追加できれば、はるかに簡単になります。これを行うためにオーバーライドできるエクスポート ツールの関連ビットはありますか?

ありがとう

4

1 に答える 1

1

最適なオプションは、SchemaExport を使用してスクリプトを作成し、手動で変更することだと思います。

それ以外の場合は、オーバーライドする必要がありますDialect.GetAddPrimaryKeyConstraintString

于 2010-08-11T13:16:42.910 に答える