Неожиданное поведение команды migrate: refresh laravel

Я хочу обновить таблицу с именем annonce в моей базе данных mysql, я использую wamp-сервер с php 5.6.31, я добавил несколько столбцов в существующую таблицу, изменив файл миграции, конкретную функцию up, здесь это функция до изменения:

       public function up()
   {
    Schema::create('annonce', function (Blueprint $table) {
        $table->engine = 'InnoDB';
        $table->increments('ID_annonce');
        $table->integer('ID_sous_categorie')->unsigned();
        $table->integer('ID_compte')->unsigned();
        $table->String('Titre');
        $table->enum('Type',['Offre','Demande']);
        $table->String('Description');
        $table->date('DatePublication');
        $table->integer('Longitude');
        $table->integer('Latitude');
        $table->foreign('ID_sous_categorie')->references('ID_sous_categorie')->on('sous_categorie')->onDelete('no action')->onUpdate('cascade');
        $table->foreign('ID_compte')->references('ID_categorie')->on('categorie')->onDelete('cascade')->onUpdate('cascade');
    });
}

Я добавил в таблицу 7 новых столбцов:

      public function up()
{
    Schema::create('annonce', function (Blueprint $table) {
        $table->engine = 'InnoDB';
        $table->increments('ID_annonce');
        $table->integer('ID_sous_categorie')->unsigned();
        $table->integer('ID_compte')->unsigned();
        $table->String('Titre');
        $table->enum('Type',['Offre','Demande']);
        $table->String('Description');
        $table->date('DatePublication');
        $table->integer('Longitude');
        $table->integer('Latitude');
        $table->String('Nom');
        $table->String('Prenom');
        $table->String('Telephone');
        $table->String('Email');
        $table->String('Photo1');
        $table->String('Photo2');
        $table->String('Photo3');
        $table->foreign('ID_sous_categorie')->references('ID_sous_categorie')->on('sous_categorie')->onDelete('no action')->onUpdate('cascade');
        $table->foreign('ID_compte')->references('ID_categorie')->on('categorie')->onDelete('cascade')->onUpdate('cascade');
    });
}

однако, когда я запускаю команду: php artisan migrate: refresh, она выполняется успешно, но когда я проверяю свою базу данных с помощью phpmyadmin, похоже, что данные были стерты (что ожидается), но структура таблицы для 'annonce' остается прежней , я так запутался, помощь будет признательна.

Я думаю, вам нужно использовать Schema :: table, а не Schema :: create

Sugumar Venkatesan 23.04.2018 16:24

Есть ли у вас Schema::dropIfExists('annonce'); в down() как часть вашей миграции?

DevK 23.04.2018 16:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда Laravel создает таблицу, вы должны использовать Schema :: create, которая удалит все данные.

Если таблица уже существует, рассмотрите возможность использования это:

Schema::table('users', function (Blueprint $table) {
    $table->string('email');
});

Это добавит ваши новые столбцы

это сработало !! спасибо за разъяснения, этого даже не было на моем радаре.

Heythem 23.04.2018 17:13

Другие вопросы по теме