Controlando a
evolução do
banco de dados
com migrations
Vinicius Hana
Chief Annoyance Officer @ Lambda3
Kanban, TDD, BDD, ...
Como você controla a evolução
do seu banco de dados?
Tempo perdido
Rollback problemático
Propensão a erros
Integração difícil
Tudo relacionado a
trabalho manual
É possível automatizar?
Sim!
Rails já faz isso a alguns anos
class ChangeProductsPrice < ActiveRecord::Migration
def up
change_table :products do |t|
t.change :price, :string
end
end
...
Realiza
alterações
Desfaz
alterações
Tá, e em .NET?
Entity Framework Migrations!
Demo
Enable-Migrations
Add-Migration
Update-Database
public partial class NomeDoProduto: DbMigration
{
public override void Up()
{
AddColumn("dbo.Produtoes", “Nome",c => c.Str...
Existem outras opções para
outros banco de dados
SharpMigrations*
RikMigrations
FluentMigrator
Migrations.NET
public class _001_CreateTableArtist : SchemaMigration
{
public override void Up()
{
Add.Table("Artist")
.WithColumns(
Colu...
Existem certas limitações em
outros componentes
Isso acalma alguns DBAs...
A maioria dos frameworks
permite gerar scripts
Mantenha suas migrations
pequenas
Não misture dados com
estruturas
Dúvidas?
Obrigado!
@vinicius_hana
vinicius.hana@lambda3.com.br
Controlando a evolução do seu banco de dados com migrations
Upcoming SlideShare
Loading in …5
×

Controlando a evolução do seu banco de dados com migrations

504 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
504
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Controlando a evolução do seu banco de dados com migrations

  1. 1. Controlando a evolução do banco de dados com migrations Vinicius Hana Chief Annoyance Officer @ Lambda3 Kanban, TDD, BDD, Programação Funcional ALM Ranger @vinicius_hana
  2. 2. Como você controla a evolução do seu banco de dados?
  3. 3. Tempo perdido Rollback problemático Propensão a erros Integração difícil Tudo relacionado a trabalho manual
  4. 4. É possível automatizar? Sim!
  5. 5. Rails já faz isso a alguns anos
  6. 6. class ChangeProductsPrice < ActiveRecord::Migration def up change_table :products do |t| t.change :price, :string end end def down change_table :products do |t| t.change :price, :integer end end end
  7. 7. Realiza alterações Desfaz alterações
  8. 8. Tá, e em .NET?
  9. 9. Entity Framework Migrations! Demo
  10. 10. Enable-Migrations Add-Migration Update-Database
  11. 11. public partial class NomeDoProduto: DbMigration { public override void Up() { AddColumn("dbo.Produtoes", “Nome",c => c.String()); } public override void Down() { DropColumn("dbo.Produtoes", “Nome"); } }
  12. 12. Existem outras opções para outros banco de dados SharpMigrations* RikMigrations FluentMigrator Migrations.NET
  13. 13. public class _001_CreateTableArtist : SchemaMigration { public override void Up() { Add.Table("Artist") .WithColumns( Column.AutoIncrement("ArtistId").AsPrimaryKey(), Column.String("Name", 120).NotNull() ); } public override void Down() { Remove.Table("Artist"); } }
  14. 14. Existem certas limitações em outros componentes
  15. 15. Isso acalma alguns DBAs... A maioria dos frameworks permite gerar scripts
  16. 16. Mantenha suas migrations pequenas Não misture dados com estruturas
  17. 17. Dúvidas?
  18. 18. Obrigado! @vinicius_hana vinicius.hana@lambda3.com.br

×