Question

Nous utilisons SchemaExport via ActiveRecord. Par défaut, il génère une table comme ceci:

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

SQL Server puis par défaut l'ajout d'un index ordonné en clusters pour la clé primaire. Mais je veux que ce soit nonclustered. Je veux ajouter un index ordonné en clusters à OWNERID car ce sera beaucoup plus efficace.

Maintenant, je pouvais courir après un script pour créer un index non ordonnés en clusters. Cela impliquerait l'abandon de la contrainte de clé primaire d'origine et l'ajout d'un non-cluster. Cependant, SchemaExport a déjà créé obligeamment toutes mes clés étrangères qui me arrêtent tomber la clé primaire.

Je dois donc laisser tomber les clés étrangères, qui ont un nom comme inutile FK4BAD9607D2BEDDB5, puis les recréer (puis-je faire à nouveau automatiquement?). Il est tout un peu d'un mal de tête.

Il serait beaucoup plus facile si je pouvais obtenir là-bas et en quelque sorte ajouter un nonclustered spécification à la clé primaire telle qu'elle génère. Y at-il un peu pertinent de l'outil d'exportation que je peux passer outre le faire?

Merci

Était-ce utile?

La solution

Je crois que votre meilleure option utilise SchemaExport pour créer le script, et le modifier manuellement.

Dans le cas contraire, vous devrez override Dialect.GetAddPrimaryKeyConstraintString.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top