Питання на співбесіді: Міграції
Найпопулярніші питання з реальних Laravel/PHP співбесід для всіх рівнів
1 питання
Міграція - це контроль версій для структури бази даних. Замість того щоб писати SQL вручну й узгоджувати його між розробниками, ви описуєте схему PHP-кодом, який комітиться в git і застосовується однаково в усіх середовищах.
Міграції зберігаються в директорії database/migrations. Кожен файл - це клас із двома методами:
up()- описує зміни, які треба застосувати (створити таблицю, додати колонку, індекс).down()- описує зворотну операцію для відкату (видалити таблицю чи колонку).
Створити міграцію:
php artisan make:migration create_posts_table
Згенерований файл заповнюють у методі up():
public function up(): void
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body');
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('posts');
}
Основні команди:
php artisan migrate- застосувати нові міграції.php artisan migrate:rollback- відкотити останній «батч».php artisan migrate:fresh --seed- перестворити всі таблиці й засіяти даними.
Навіщо: будь-який розробник на новій машині отримує ідентичну схему БД однією командою, а зміни структури проходять через code review разом із кодом.