Я хочу обновить таблицу с именем 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::dropIfExists('annonce'); в down() как часть вашей миграции?






Когда Laravel создает таблицу, вы должны использовать Schema :: create, которая удалит все данные.
Если таблица уже существует, рассмотрите возможность использования это:
Schema::table('users', function (Blueprint $table) {
$table->string('email');
});
Это добавит ваши новые столбцы
это сработало !! спасибо за разъяснения, этого даже не было на моем радаре.
Я думаю, вам нужно использовать Schema :: table, а не Schema :: create