Q:

unexpected behavior of migrate:refresh command laravel

I want to update a table named 'annonce' in my mysql database , i'm using wamp server with php 5.6.31 , i added a few columns to the existing table by changing the migration file , the up function to be specific , here is the function before the change :
       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');
    });
}

i added 7 new columns to the table : 
      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');
    });
}

however , when i run the command : php artisan migrate:refresh , it executes successfully but when i check my database using phpmyadmin it looks like the data has been erased(which is expected) but the table structure for 'annonce' is still the same , i'm so confused , help would be appreciated .

A:

When Laravel create a table you should use Schema::create, that will drop the whole data.
If the table already exist consider using this :
Schema::table('users', function (Blueprint $table) {
    $table->string('email');
});

This will add your new columns

