# Migrações avançadas (Ruby on Rails) > 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 - [Perguntas de entrevista: Ruby on Rails](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista.md) ## 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. ## Mais 17 perguntas disponiveis - 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? Cadastre-se gratis: https://sharpskill.dev/pt/login ## Outros temas de entrevista Ruby on Rails - [Fundamentos de Ruby](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/ruby-basics.md): 25 perguntas, Junior - [Programação orientada a objetos em Ruby](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/ruby-oop.md): 20 perguntas, Junior - [Fundamentos do Rails](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/rails-fundamentals.md): 18 perguntas, Junior - [Routing & Controllers](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/routing-controllers.md): 22 perguntas, Junior - [Fundamentos do ActiveRecord](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/active-record-basics.md): 25 perguntas, Junior - [Views e templates ERB](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/views-erb-templates.md): 20 perguntas, Junior - [Associações do ActiveRecord](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/active-record-associations.md): 24 perguntas, Mid-Level - [Consultas avançadas do ActiveRecord](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/active-record-queries.md): 28 perguntas, Mid-Level - [Formulários Rails](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/rails-forms.md): 20 perguntas, Mid-Level - [Autenticação e Autorização](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/authentication-authorization.md): 22 perguntas, Mid-Level - [Asset Pipeline moderno e frontend](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/rails-asset-pipeline.md): 18 perguntas, Mid-Level - [Modo API do Rails](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/rails-api-mode.md): 20 perguntas, Mid-Level - [Testes com RSpec](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/rails-testing-rspec.md): 24 perguntas, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/active-job-background-jobs.md): 20 perguntas, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/action-cable-websockets.md): 18 perguntas, Mid-Level - [ActionMailer](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/action-mailer.md): 18 perguntas, Mid-Level - [ActiveStorage](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/active-storage.md): 20 perguntas, Mid-Level - [Estratégias de caching](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/caching-strategies.md): 20 perguntas, Mid-Level - [Rails Engines e apps modulares](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/rails-engines-modular-apps.md): 18 perguntas, Senior - [Otimização de desempenho](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/performance-optimization.md): 26 perguntas, Senior - [Padrões de projeto no Rails](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/rails-design-patterns.md): 22 perguntas, Senior - [Metaprogramação em Ruby](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/ruby-metaprogramming.md): 20 perguntas, Senior - [Segurança no Rails](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/rails-security.md): 22 perguntas, Senior - [GraphQL com Rails](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/graphql-rails.md): 20 perguntas, Senior - [Implantação e Produção](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/rails-deployment-production.md): 20 perguntas, Senior - [Monitoring & Logging](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/monitoring-logging.md): 20 perguntas, Senior - [Estratégias de upgrade do Rails](https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/rails-upgrade-strategies.md): 18 perguntas, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pt/technologies/ruby-on-rails/perguntas-entrevista/database-migrations-advanced