的意外行为migrate:refresh command 拉拉维尔

fkaflof6  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(314)

我想在我的mysql数据库中更新一个名为'annonce'的表,我使用的是带有php 5.6.31的wamp服务器,我通过更改迁移文件在现有表中添加了一些列,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 artisanmigrate:refresh ,它成功地执行了,但是当我使用phpmyadmin检查我的数据库时,它看起来数据已经被删除(这是预期的),但是'annonce'的表结构仍然是一样的,我很困惑,希望您能提供帮助。

laik7k3q

laik7k3q1#

当laravel创建一个表时,您应该使用schema::create,这将删除整个数据。
如果该表已经存在,请考虑使用以下选项:

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

这将添加新列

相关问题