
Migrações avançadas
Migrações complexas, reversible migrations, migrações de dados, rollbacks, restrições de DB vs validações, safe migrations
1Qual é a diferença entre os métodos change e up/down em uma migração Rails?
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.
2Como tornar uma migração reversível quando o Rails não consegue inferir automaticamente a operação inversa?
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.
3Qual comando permite reverter várias migrações em uma única operação?
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.
Por que evitar o uso de referências ao modelo ActiveRecord nas migrações de dados?
Qual é a melhor prática para realizar uma migração de dados em produção em uma tabela grande?
+17 perguntas de entrevista
Outros temas de entrevista Ruby on Rails
Fundamentos de Ruby
Programação orientada a objetos em Ruby
Fundamentos do Rails
Routing & Controllers
Fundamentos do ActiveRecord
Views e templates ERB
Associações do ActiveRecord
Consultas avançadas do ActiveRecord
Formulários Rails
Autenticação e Autorização
Asset Pipeline moderno e frontend
Modo API do Rails
Testes com RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Estratégias de caching
Rails Engines e apps modulares
Otimização de desempenho
Padrões de projeto no Rails
Metaprogramação em Ruby
Segurança no Rails
GraphQL com Rails
Implantação e Produção
Monitoring & Logging
Estratégias de upgrade do Rails
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