Pergunta

Estamos usando SchemaExport via ActiveRecord. Por padrão, ele gera uma tabela como esta:

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

O SQL Server, em seguida, padrão adiciona um índice em cluster para a chave primária. Mas eu quero que isso seja não cluster. Quero adicionar um índice em cluster ao proprietário, pois isso será muito mais eficiente.

Agora, eu poderia executar um script depois para criar um índice não agrupado. Isso envolveria soltar a restrição de chave primária original e adicionar uma não agrupada. No entanto, o SchemaExport já criou todas as minhas restrições de chave estrangeira que me impedem de soltar a chave primária.

Então, eu preciso soltar as chaves estrangeiras, que têm um nome inútil como fk4bad9607d2beddb5, depois as recrie (posso fazer isso novamente automaticamente?). É tudo um pouco de dor de cabeça.

Seria muito mais fácil se eu pudesse entrar lá de alguma forma e adicionar um não clusterado Especificação para a chave primária à medida que a gera. Existe uma parte relevante da ferramenta de exportação que eu posso substituir para fazer isso?

Obrigado

Foi útil?

Solução

Acredito que sua melhor opção é usar o SchemaExport para criar o script e modificá -lo manualmente.

Caso contrário, você precisará substituir Dialect.GetAddPrimaryKeyConstraintString.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top