O que é uma migration?

Prévia grátis 2 min de leitura

De onde a tabela articles veio

Todo curso desde ActiveRecord: introdução ao model supôs que uma tabela articles existia para Article.find, .create e .all. Nenhum explicou de onde ela veio, nem como ganharia uma coluna depois sem quebrar as linhas salvas. Uma migration preenche essa lacuna: uma instrução ordenada e versionada que descreve uma mudança na estrutura do banco.

Versionada, como o código já é

Os cursos de Git trataram de commitar mudanças uma a uma, cada uma sobre a anterior, numa ordem conhecida. Uma migration aplica essa ideia à estrutura do banco. No histórico deste projeto, CreateUsers roda antes de CreateCourses: passos pequenos e ordenados, não um grande script de configuração que não dá para repetir.

db/migrate/20260226000000_create_users.rb
db/migrate/20260226000001_create_courses.rb
db/migrate/20260226000002_create_lessons.rb

Estes são os primeiros arquivos de migration deste projeto, cada um com um prefixo de timestamp. O timestamp decide a ordem em que rodam; a aula 2 mostra de onde ele vem.

Por que não editar o banco à mão?

Mudar uma tabela à mão funciona numa máquina, até o banco de um colega ou um servidor de produção precisar da mesma mudança. Uma migration é um arquivo commitado no git, então qualquer colega ou deploy pode rodá-la e chegar à mesma estrutura, na mesma ordem, sempre.

Pontos-chave

  • Uma migration é uma mudança ordenada e versionada na estrutura do banco.
  • Os arquivos de migration deste projeto têm prefixo de timestamp e rodam nessa ordem.
  • Commitada no git, uma migration deixa qualquer colega ou deploy chegar à mesma estrutura.
Aula 1 de 7 · grátis

Continue com a aula 2

Gerando uma migration

O bin/rails generate migration cria um arquivo com timestamp, e nomes como Create<Tabela> deixam o gerador preencher o corpo.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...