Compilare un database

Secondo Grant Fritchey costruire un database significa:

In application development, we build a working application from its constituent parts, compiling it in the correct order then linking and packaging it. The ‘build process’ will do everything required to create or update the workspace for the application to run in, and manage all baselining and reporting about the build.

Similarly, the purpose of a database build is to prove that what we have in the version control system – the canonical source – can successfully build a database from scratch. The build process aims to create from its constituent DDL creation scripts and other components, in the version control repository, a working database to a particular version. It will create a new database, create its objects, and load any static, reference or lookup data.

Since we’re creating an entirely new database, a database build will not attempt to retain the existing database or its data. In fact, many build processes will fail, by design, if a database of the same name already exists in the target environment, rather than risk an IFEXISTS...DROPDATABASE command running on the wrong server!

Ma cosa ce ne facciamo di una database build? Se voglio dare un database di sviluppo a una persona nel mio team non mi basta fare un backup e un restore nella sua macchina? Certo ma non è solo questo l’unico scopo di costruire un database da zero in maniera replicabile alla pressione di un pulsante.

Che vantaggi porto a casa?

Gli immediati vantaggi che la compilazione corretta di un db porta sono:

  • Controllo di salute dello schema del db: tutti gli oggetti sono validi e non fanno riferimenti a cose inesistenti;
  • Si può (deve?) automatizzare il processo. Così dopo ogni modifica dello schema di cui viene fatto il commit in un VCS parte la compilazione del database e verifica se abbiamo rotto qualcosa;
  • Automatizzando il processo si possono automatizzare dei test sul database;
  • Automatizzando i test si comincia ad avere un sistema automatico di controllo qualità del database.

Combinando quindi un database compilabile con un paio di altri strumenti possiamo ottenere quello che per le applicazioni esiste già da decenni, cioè un Database Lifecycle Management strutturato e automatizzato.

Voi avete implementato il DLM per vostro database? Il mio è corso d’opera e farò dei post per spiegare come l’ho ottenuto.

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s