Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 472новые вакансии за сутки·93 728вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 267
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 402 кандидата открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python17 124
  • Облачные технологии14 081
  • QA вакансии3 459
  • Backend вакансии2 116
  • Инженер данных1 804
  • Продакт-менеджер1 264

Разработка

  • Android1 866
  • iOS1 701
  • Fullstack вакансии988
  • AI вакансии952
  • Frontend вакансии744
  • Mobile вакансии44

По стеку

  • Go8 662
  • Java6 548
  • Node.js2 019
  • .NET1 722
  • Kotlin1 619
  • Rust1 454
  • C#711
  • PHP683
  • C++571

DevOps и инфраструктура

  • Kubernetes7 766
  • DevOps вакансии6 053
  • Linux-инфраструктура5 491
  • Terraform / IaC4 262
  • CI/CD3 242
  • Мониторинг и Observability1 787
  • SRE567
  • Кибербезопасность453

Аналитика и данные

  • Data Scientist1 140
  • Бизнес-аналитик927
  • Аналитик данных854
  • Системный аналитик153

Другие направления

  • Проджект-менеджер615
  • UI/UX дизайн146
  • Ручное тестирование14

По регионам

  • Вакансии в США44 297
  • Вакансии в Европе23 854
  • Вакансии в Канаде4 476
  • Работа в России3 921

По формату

  • Удалённые вакансии75 046
  • Релокация в США44 297
  • Гибридная работа12 398
  • Офисная работа7 076

По уровню

  • Senior вакансии42 676
  • Middle вакансии20 894
  • Junior вакансии6 725

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab137 вакансий
  • Celonis39 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме LaravelВсе вопросы
LaravelJuniorТеория

Что такое migrations в Laravel и как их создавать и запускать?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Миграции — версионный контроль схемы БД. Создаются через artisan make:migration, описывают изменения в методах up()/down(), применяются командой php artisan migrate.

Создание миграции

# Создать таблицу
php artisan make:migration create_products_table

# Изменить существующую таблицу
php artisan make:migration add_price_to_products_table --table=products

Файл появится в database/migrations/ с временной меткой в имени — это гарантирует порядок выполнения.

Миграции в Laravel

Миграции — это версионный контроль для схемы базы данных. Каждая миграция представляет собой PHP-класс с двумя методами: up() — применить изменение, down() — откатить его. Laravel хранит список уже применённых миграций в таблице migrations.

Структура файла миграции

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    public function up(): void
    {
        Schema::create('products', function (Blueprint $table) {
            $table->id();                          // BIGINT UNSIGNED AUTO_INCREMENT PK
            $table->string('name', 200);
            $table->text('description')->nullable();
            $table->decimal('price', 10, 2)->default(0);
            $table->foreignId('category_id')
                  ->constrained()
                  ->cascadeOnDelete();
            $table->timestamps();                  // created_at + updated_at
            $table->softDeletes();                 // deleted_at
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('products');
    }
};

Основные команды

# Применить все новые миграции
php artisan migrate

# Откатить последний пакет миграций
php artisan migrate:rollback

# Откатить все и применить заново (для dev)
php artisan migrate:fresh

# Откатить все, применить и запустить сидеры
php artisan migrate:fresh --seed

# Показать статус всех миграций
php artisan migrate:status

Добавление колонки к существующей таблице

public function up(): void
{
    Schema::table('products', function (Blueprint $table) {
        $table->unsignedInteger('stock')->default(0)->after('price');
        $table->index('category_id'); // добавить индекс
    });
}

public function down(): void
{
    Schema::table('products', function (Blueprint $table) {
        $table->dropColumn('stock');
    });
}

Подводные камни

  • migrate:fresh удаляет ВСЕ таблицы — никогда не запускайте его в production, только в разработке.
  • Не редактируйте уже применённые миграции: если коллеги уже сделали migrate, изменение файла не повлияет на их БД. Создавайте новую миграцию.
  • Метод down() должен полностью обращать up(); если вы добавили индекс в up(), в down() его нужно явно дропнуть через dropIndex().
  • При добавлении NOT NULL колонки в таблицу с существующими данными без default значения — база данных вернёт ошибку. Всегда задавайте ->nullable() или ->default(...).
  • Имя файла (и класса) миграции должно быть уникальным; дублирующиеся имена приводят к конфликтам при autoload.
  • foreignId('category_id')->constrained() по умолчанию ищет таблицу categories — если она называется иначе, укажите явно: constrained('product_categories').
  • В SQLite ряд операций Schema (например, dropColumn для некоторых типов) не поддерживается — учитывайте это при написании тестов с in-memory SQLite.

Частые вопросы на собеседовании

  • Как работает система маршрутизации (routing) в Laravel и в чём разница между web и API маршрутами?
  • Что такое паттерн MVC и как Laravel его реализует?
  • Что такое Laravel и каковы его ключевые возможности?
  • В каких backend-проектах Laravel является сильным выбором, а где лучше выбрать более простой или другой стек?

Типичные ошибки

  • Сводить migrations к названию метода без lifecycle и failure path.
  • Игнорировать модель runtime: Laravel 13 поверх PHP: request проходит через HTTP kernel, middleware, routing, controller/action и response pipeline.
  • Не отделять validation, authorization, transaction boundary и business logic.

Что проверяет интервьюер

  • Объясняет migrations через конкретную точку lifecycle в Laravel.
  • Приводит корректный минимальный пример без вымышленных методов или callbacks.
  • Называет edge cases: пустые значения, ошибки, транзакции, безопасность или concurrency.

Как вы знаете этот вопрос?

Проверить себя по теме Laravel →

Источники

  • https://laravel.com/docs/13.x/migrations
  • https://laravel.com/docs/13.x
←Предыдущий вопросКак работает система маршрутизации (routing) в Laravel и в чём разница между web и API маршрутами?Следующий вопрос→Что такое паттерн MVC и как Laravel его реализует?

Связанные темы

LaravelBackend-Engineeringlaravel-ecosystem