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

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

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

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

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

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

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

За один раз можно добавить сколько угодно полей.

  • up() — метод для внесения изменений, вызывается командой php artisan migrate
  • down() — метод для отмены изменений, вызывается командой php artisan migrate:rollback

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

public function up() {
  Schema::table('quizzes', function (Blueprint $table) {
    $table->text("description");
  });
}

public function down() {
  Schema::table('quizzes', function (Blueprint $table) {
    $table->dropColumn("description");
  });
}

Внести изменения в БД

Чтобы запустить миграцию (будет вызван метод up())

php artisan migrate

Для отмены изменений (будет вызван метод down())

php artisan migrate:rollback

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

  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');
          *Комментарий будет опубликован после проверки модератором

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

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