GithubHelp home page GithubHelp logo

userdb's Introduction

Criação e versionamento de Databases SQL Server no VS 2017

Database Change Tracking With Visual Studio and Git

Normalmente, quando se trata de banco de dados SQL Server e desenvolvimento .NET, é comum se utilizar de algum ORM, tal como Entity Framework para mapear as entidades em alguma camada, ou até mesmo utilizar o Migrations em uma estratégia de Code First. Nesse cenário, qualquer alteração efetuada no banco de dados, digamos que por um DBA ou alguém da equipe, não será refletido automaticamente no seu código fonte, levando a erros.

Uma alternativa muito interessante e recomendada em alguns projetos, seria criar um projeto de banco de dados dentro da própria solução do projeto e gerenciar os objetos e suas alterações pela IDE, fazendo uso da feature Schema Compare.

Benefícios e cenários para utilizar essa abordagem

  • É possível criar ou atualizar os objetos do banco (tabelas, views, schemas, etc) diretamente do projeto
  • É possível versionar o seu banco de dados como parte integral da sua solução
  • É possível identificar rapidamente as alterações efetuadas no banco de dados, sabendo quem o fez e quando o fez
  • É rápido para subir uma cópia da estrutura da sua base de dados em qualquer outro local

O que é necessário para criar um Database Project no Visual Studio 2017

Além do Visual Studio 2017 instalado (podendo ser até a versão Community), será necessário instalar o SQL Server Data Tools para Visual Studio. Na referência do artigo, você pode encontrar o link. Efetue a instalação e depois reinicie sua máquina.

Criando o projeto

Após instalação do SQL Server Data Tools para criar o projeto, abra o Visual Studio, selecione File > New > Projec.

Existe uma categoria de instalação chamada “SQL Server” e uma opção de SQL Server Database Project.

Para efeito de testes, utilizando o SQL Server Management Studio, crie um database de demo com uma única tabela.

No Visual Studio, abra a “Solution Explore” e clique com o botão direito do mouse em cima do projeto. Selecione a opção “Schema Compare”.

O Schema Compare é responsável por analisar o que você tem de objetos na sua solução e comparar com o que existe na base de dados. Nesse primeiro cenário, vamos analisar da base de dados para o nosso projeto local.

Do lado esquerdo temos o projeto local e ao lado direito, temos que selecionar um “Target”, ou seja, qual é a instância e banco de dados que vamos analisar.

Clique em “Select Connection”.

Em seguida, informe “Server Name”, o tipo de autenticação (usuário e senha ou Windows Authentication), senha (se houver) e qual a base de dados.

Agora, analise que temos ao lado esquerdo o caminho do nosso projeto; ao lado direito a configuração de qual database faremos conexão e comparação; no meio, o botão “Switch” que serve para trocar o tipo de visuação (Database > Fonte ou Fonte > Database). Clique no botão “Switch” para inverter a ordem. Nós olharemos do Database para o Fonte.

E o botão sinalizado em amarelo, é o botão que fará a comparação. Clique nele em seguida.

Ao realizar o “Compare” é exibida uma lista com quais objetos existem no banco de dados e não estão presentes em nosso projeto.

Para atualizar e sincronizar, clique em “Update” (sinalizado em amarelo). Agora temos a tabela “Usuario” representada em arquivo SQL em nosso projeto.

Alterando a entidade e refletindo no banco de dados

Clicando no arquivo “Usuario.sql” você poderá editar, tanto por SQL ou pela IDE as características do objeto.

Nesse caso, acrescentaremos mais uma coluna.

No Schema Compare, vamos solicitar que ele visualize do arquivo local do projeto para a base de dados.

Efetue o “Compare” e podemos ver que localmente temos diferenças mas ainda não aplicamos na base de dados.

Para isso, clique em “Update” e veja a alteração no Visual Studio:

E também no SQL Server Management Studio:

Referências

Instalação do SQL Server Data Tools para Visual Studio:

Video passo-a-passo mostrando a solução:

userdb's People

Contributors

marcialwushu avatar

Stargazers

みづな れい avatar Lucas Apoena avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.