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

Создать файл миграции

Таблица users уже есть, и мы хотим добавить поле. Для этого создаем файл миграции:

php artisan make:migration add_description_to_quizzes_table
  • php artisan make:migration — команда
  • add_description_to_quizzes_table — +/- произвольное описание. Желательно чтобы оно было максимально точным, чтобы вам самому было понятно что это.

Новый файл будет расположен в папке database\migrations.

Указать какие поля хотим добавить

Переходим в созданный файл и добавляем те поля, которые хотим добавить.

Типы полей указаны в документации

public function up() {
  // Будет вызвано при запуске php artisan migrate
  Schema::table('quizzes', function (Blueprint $table) {
    $table->text("description");
  });
}

public function down() {
  // Будет вызвано при запуске php artisan migrate:rollback (--step=1)
  Schema::table('quizzes', function (Blueprint $table) {
    $table->dropColumn("description");
  });
}

Artisan команды для внесения изменений в БД

  • php artisan migrate — выполнить все новые миграции (методы up())
  • php artisan migrate:rollback — выполнить отмену всех последних миграций (методы down())
  • php artisan migrate:rollback --step=1 — выполнить отмену только оной последний миграции.
  • php artisan migrate:rollback --batch=3 — если вы несколько раз запускали миграцию, то можно отменить сразу несколько блоков.

Пара слов про migrate:rollback:
Эту команду часто описывают как "отменить изменения", и может возникнуть ощущение, что это некий ctrl+z, который вернет все назад. Но на самом деле эта команда просто выполняет код, который вы прописали в методе down().

Комментарии (7)

  1. удалитель бд 08 ноября 2022, 23:30 # 0
    какие же вы мрази, я удалил все бд на серваке
    умрите
    php artisan migrate:rollback --step=1 делайте
    1. Владимир 27 декабря 2022, 16:55 # 0
      Чувак, да ты просто гений кодирования. Это ж каким дятлом надо быть, чтобы на реальном серваке эксперименты проводить. Укуси себя за жопу, лол :)
      1. Евгений 25 февраля 2023, 23:55 # 0
        Команда migrate: refresh откатит все ваши миграции и затем выполнит команду migrate. Эта команда полностью воссоздает всю вашу базу данных:
      2. Админ 08 ноября 2022, 23:49 # 0
        А как ты сделал? Что пошло не так? Перед смертью хочется понять за что умирать…
        1. Владислав 22 ноября 2022, 13:34 # 0
          Все логично, метод вызывает все down миграций, а в миграциях написно что то типо
          Schema::dropIfExists('quizzes');
          1. Николай 18 июня 2023, 22:39 # 0
            Ну так парни поправьте подсказку =)))) Измените php artisan migrate:rollback
            на php artisan migrate:rollback --step=1

            Рил не понятно
            1. Админ 02 июля 2023, 14:37 # 0
              Ок, поправил формулировки
            *Комментарий будет опубликован после проверки модератором

            Похожие статьи

            Загрузка изображения в Laravel

            Русификация Laravel

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

            Как поменять язык в Faker

            Транслитерация URL в Laravel. Примеры str_slug()

            Разработка бота Telegram с помощью Botman на локальном компьютере

            Валидация данных в Laravel form request

            Laravel Excel - Базовый экспорт

            Добавить в botman editMessageText для Telegram

            Как сделать middleware в Laravel 6 - простой пример

            Laravel: Отношения моделей многие ко многим - belongsToMany

            Laravel: Отношения моделей один ко многим - hasMany, belongsTo

            Как русифицировать или поменять шаблон уведомления о сбросе пароля в Laravel

            Создать ссылку на storage из внешнего каталога для Laravel

            Установить Laravel в отдельную папку (site.ru/laravel/)

            Валидация номера кредитной карты на PHP (Laravel)

            Создание form request в Laravel: руководство для начинающих

            Связать папку storage с папкой public в Laravel

            Экспорт маршрутов из Laravel в JSON файл

            Откуда в Laravel Jetstream (inertia) prop auth.user?

            Обработка ошибок в Laravel form request

            Постраничная навигация на Bootstrap в Laravel 8

            Blade - расширить @section с использованием директивы @parent

            Добавить данные об авторизации при каждом запросе к API в Laravel

            Работа с файлами в Laravel Form Request

            Работа с вложенными объектами и коллекциями в Laravel form request

            Laravel: Отношение через таблицу-посредника - hasOneThrough()

            Стандартные свойства модели в Laravel

            Laravel: Отношения моделей один к одному - hasOne, belongsTo

            Laravel: Отношение через таблицу-посредника - hasManyThrough()

            Авторизацией и аутентификация в Laravel form request

            Создание уникального индекса в миграции Laravel

            Установка Laravel и создание нового проекта

            Laravel form request для создания API-запросов

            Настройка команды CRON на хостинге nic.ru для активации Laravel schedule

            HTTP-запросы в Laravel form request - работа с различными типами запросов

            Создание класса модели в Laravel

            Создание таблицы в базе данных (миграции) для модели в Laravel

            Как создать модель в Laravel

            Базовые методы CRUD контроллера для модели в Laravel

            Наш сайт использует куки, нажмите «ОК» если вы не против
            OK