Pregunta

Estamos utilizando SchemaExport a través de ActiveRecord. Por defecto se genera una tabla como la siguiente:

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

SQL Server entonces por defecto es la adición de un índice agrupado para la clave principal. Pero yo quiero que esto sea agrupado. Quiero añadir un índice agrupado a OwnerId, ya que será mucho más eficiente.

Ahora, yo podría ejecutar un script después de crear un índice no agrupado. Esto implicaría dejar caer la restricción de clave primaria original y añadiendo una no agrupado. Sin embargo, SchemaExport ya ha creado amablemente todas mis claves foráneas que me dejan caer la clave principal.

Por lo tanto, necesidad de soltar las claves externas, las cuales tienen un nombre poco útil como FK4BAD9607D2BEDDB5, a continuación, volver a crearlos (puedo hacer esto de nuevo de forma automática?). Todo es un poco de un dolor de cabeza.

Sería mucho más fácil si tan sólo pudiera entrar allí de alguna manera y añadir un especificación no agrupado a la clave principal, ya que lo genera. ¿Hay un poco relevante de la herramienta de exportación puedo anular hacer esto?

Gracias

¿Fue útil?

Solución

Creo que su mejor opción es usar SchemaExport para crear el guión, y modificar de forma manual.

De lo contrario, tendrá que Dialect.GetAddPrimaryKeyConstraintString anulación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top