Ruby on Rails

Migrações avançadas

Migrações complexas, reversible migrations, migrações de dados, rollbacks, restrições de DB vs validações, safe migrations

20 perguntas de entrevista·
Mid-Level
1

Qual é a diferença entre os métodos change e up/down em uma migração Rails?

Resposta

O método change é uma sintaxe simplificada introduzida no Rails 3.1 que permite ao Rails inferir automaticamente a operação inversa. Funciona para a maioria das operações comuns como add_column ou create_table. Os métodos up e down oferecem controle explícito sobre as operações de aplicação e rollback, o que é necessário quando o Rails não consegue inferir automaticamente a inversa, como durante exclusões de dados ou transformações complexas.

2

Como tornar uma migração reversível quando o Rails não consegue inferir automaticamente a operação inversa?

Resposta

O bloco reversible permite definir explicitamente as operações up e down dentro de um método change. Isso é particularmente útil para operações como remove_column onde o Rails precisa conhecer o tipo e as opções da coluna para recriá-la durante um rollback. O bloco reversible oferece a flexibilidade de up/down mantendo a sintaxe moderna de change.

3

Qual comando permite reverter várias migrações em uma única operação?

Resposta

O comando rails db:rollback STEP=n permite reverter as últimas n migrações executadas. Por exemplo, STEP=3 reverterá as três últimas migrações na ordem inversa de sua execução. Sem a opção STEP, apenas a última migração é revertida. Esse comando é útil para retornar rapidamente a um estado anterior do banco de dados durante o desenvolvimento.

4

Por que evitar o uso de referências ao modelo ActiveRecord nas migrações de dados?

5

Qual é a melhor prática para realizar uma migração de dados em produção em uma tabela grande?

+17 perguntas de entrevista

Domine Ruby on Rails para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis