Ruby on Rails

Розширені міграції

Складні міграції, reversible migrations, міграції даних, rollbacks, обмеження БД проти валідацій, safe migrations

20 питань зі співбесід·
Mid-Level
1

Яка різниця між методами change та up/down у міграції Rails?

Відповідь

Метод change — це спрощений синтаксис, представлений у Rails 3.1, який дозволяє Rails автоматично визначати зворотну операцію. Він працює для більшості поширених операцій, як-от add_column чи create_table. Методи up і down забезпечують явний контроль над операціями застосування та rollback, що необхідно, коли Rails не може автоматично визначити зворотну операцію, наприклад під час видалення даних або складних перетворень.

2

Як зробити міграцію зворотною, коли Rails не може автоматично визначити зворотну операцію?

Відповідь

Блок reversible дозволяє явно визначати операції up і down усередині методу change. Це особливо корисно для операцій на кшталт remove_column, де Rails потрібно знати тип і параметри стовпця, щоб відтворити його під час rollback. Блок reversible пропонує гнучкість up/down, зберігаючи сучасний синтаксис change.

3

Яка команда дозволяє відкотити кілька міграцій за одну операцію?

Відповідь

Команда rails db:rollback STEP=n дозволяє відкотити останні n виконаних міграцій. Наприклад, STEP=3 відкотить три останні міграції у зворотному порядку їх виконання. Без опції STEP відкочується лише остання міграція. Ця команда корисна для швидкого повернення до попереднього стану бази даних під час розробки.

4

Чому слід уникати використання посилань на модель ActiveRecord у міграціях даних?

5

Яка найкраща практика для виконання міграції даних у продакшені на великій таблиці?

+17 питань зі співбесід

Інші теми співбесід Ruby on Rails

Основи Ruby

Junior
25 запитань

Об'єктно-орієнтоване програмування в Ruby

Junior
20 запитань

Основи Rails

Junior
18 запитань

Routing & Controllers

Junior
22 запитань

Основи ActiveRecord

Junior
25 запитань

Views та шаблони ERB

Junior
20 запитань

Асоціації ActiveRecord

Mid-Level
24 запитань

Розширені запити ActiveRecord

Mid-Level
28 запитань

Форми Rails

Mid-Level
20 запитань

Автентифікація та авторизація

Mid-Level
22 запитань

Сучасний Asset Pipeline та frontend

Mid-Level
18 запитань

Режим API Rails

Mid-Level
20 запитань

Тестування з RSpec

Mid-Level
24 запитань

ActiveJob & Background Jobs

Mid-Level
20 запитань

ActionCable & WebSockets

Mid-Level
18 запитань

ActionMailer

Mid-Level
18 запитань

ActiveStorage

Mid-Level
20 запитань

Стратегії кешування

Mid-Level
20 запитань

Rails Engines та модульні застосунки

Senior
18 запитань

Оптимізація продуктивності

Senior
26 запитань

Патерни проєктування Rails

Senior
22 запитань

Метапрограмування в Ruby

Senior
20 запитань

Безпека Rails

Senior
22 запитань

GraphQL із Rails

Senior
20 запитань

Розгортання та Продакшн

Senior
20 запитань

Monitoring & Logging

Senior
20 запитань

Стратегії оновлення Rails

Senior
18 запитань

Опануй Ruby on Rails для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно