Refatoração de objetos de banco de dados em um ambiente de equipe

Com Visual Studio Premium, que você gerencie as alterações, colocando a representação offline do banco de dados esquema, que é chamado de o projeto de banco de dados, sob um sistema de controle de versão. Você ou um membro da equipe pode alterar o projeto de banco de dados, mas essas alterações devem ser criadas e implantadas em um banco de dados ao vivo. Nessa situação, até quatro representações do banco de dados podem existir:

  • O servidor de banco de dados que contém o banco de dados ao vivo e os dados.

  • O projeto de banco de dados, que é a representação do esquema do banco de dados off-line.

  • O arquivo compilado .dbschema, que contém as informações necessárias para implantar esse esquema de banco de dados a qualquer destino banco de dados e servidor. Esse arquivo é criado sempre que você constrói o projeto de banco de dados.

  • O repositório de controle de versão, que controla todas as alterações que faz com qualquer membro da equipe no projeto de banco de dados.

Para obter mais informações, consulte Iniciando o desenvolvimento de banco de dados de equipe.

Refatoração em um ambiente de equipe

Se você usar a refatoração para renomear um o objeto de banco de dados ou movê-lo para um esquema diferente, outros objetos que fazem referência o objeto renomeado ou movido são atualizados automaticamente com o novo nome ou o esquema. Por exemplo, você pode renomear uma coluna em uma tabela e quaisquer procedimentos armazenados que fazem referência a essa coluna são atualizados automaticamente com o novo nome. Para obter mais informações, consulte Renomear todas as referências a um objeto de banco de dados ou Mover um objeto de banco de dados para um esquema diferente.

Antes de atualizar um objeto de banco de dados, você deve fazer check-out do controle de origem os arquivos para todos os objetos que devem ser atualizados. Se você tiver definido sua opção de controle de origem para retirar os arquivos automaticamente, é feita a tentativa de check-out silenciosamente. Caso contrário, você será solicitado a fazer check-out de arquivos.

A operação de refatoração falha nas seguintes situações:

  • Se alguém tiver bloqueado um ou mais arquivos, será exibida uma mensagem e a operação de refatoração é cancelada. Você deve aguardar até que os arquivos sejam desbloqueados antes de tentar a operação novamente.

  • Se as versões de fazer check-out mais recentes do que as versões que estão em seu projeto, será exibida uma mensagem e a operação de refatoração é cancelada. Você deve reconciliar as versões do arquivo antes de você repetir a operação.

  • Se você for solicitado a fazer check-out de arquivos e clicar em Cancelar, a operação de refatoração é cancelada.

    ObservaçãoObservação

    Quando você renomeia um objeto de banco de dados, você não renomeie o arquivo. SQL no qual esse objeto é definido. Você pode renomear o arquivo manualmente no Solution Explorer.

Logs e preservação de intenção de refatoração

Quando você usa a refatoração para renomear ou mover um o objeto de banco de dados, o ProjectName.refactorlog arquivo é atualizado com os detalhes dessa operação. Quando você implanta suas alterações, o log ajuda a preservar a intenção de suas alterações porque o script de implantação contém operações preservar essa intenção. Por exemplo, a implantação pode emitir uma instrução sp_rename para uma coluna em vez de soltar e criar instruções.

Se dois ou mais desenvolvedores fazer alterações que atualizar o log de refatoração, as alterações no arquivo de log devem ser mescladas. O arquivo de .refactoring é um arquivo XML que tem um esquema simples, mesclar as atualizações não deve ser difícil. Cada operação inclui uma data e hora para que você pode certificar-se de que as operações de refatoração são aplicadas na ordem correta.

Aviso

Se você mesclar automaticamente as alterações no log de refatoração, podem ocorrer erros. Você sempre deve revisar os resultados de uma mesclagem automática ou mesclar as alterações manualmente antes de implantar o projeto de banco de dados.

Seu registro de refatoração parecerá com o exemplo a seguir:

<?xml version="1.0" encoding="utf-16"?>
<Operations>
  <Operation Name="Move Schema" Key="677a0ee6-1707-413a-985f-b392b1a2d68b" ChangeDateTime="04/07/2008 21:59:00">
    <Property Name="ElementName" Value="[Person].[AbsenceHistory]" />
    <Property Name="ElementType" Value="ISql90Table" />
    <Property Name="NewSchema" Value="HumanResources" />
    <Property Name="IsNewSchemaExternal" Value="True" />
  </Operation>
  <Operation Name="Rename Refactor" Key="fb88992c-cd6e-43d0-aa54-ed80f155d202" ChangeDateTime="04/07/2008 21:59:26">
    <Property Name="ElementName" Value="[HumanResources].[AbsenceHistory].[column_1]" />
    <Property Name="ElementType" Value="ISqlSimpleColumn" />
    <Property Name="ParentElementName" Value="[HumanResources].[AbsenceHistory]" />
    <Property Name="ParentElementType" Value="ISql90Table" />
    <Property Name="NewName" Value="EmployeeID" />
  </Operation>
</Operations>

Neste log de exemplo, duas operações de refatoração foram registradas. Na primeira operação, a tabela [AbsenceHistory] foi movida do esquema [pessoa] para o esquema de [HumanResources]. Na segunda operação, a coluna na tabela [AbsenceHistory] [Coluna_1] foi renomeada como [CódigoDoFuncionário].

Consulte também

Conceitos

Criação e gerenciamento de bancos de dados e aplicativos de camada de dados em Visual Studio

Renomear todas as referências a um objeto de banco de dados

Mover um objeto de banco de dados para um esquema diferente

Refatorar o código do banco de dados e dados