sql >> Database >  >> RDS >> Mysql

Nieuwe kolommen toevoegen aan bestaande tabel in een migratie in Laravel

Als u bij het foutspoor controleert:

Dit betekent dat de gebruikerstabel bestaat al, dus wanneer u uw migraties uitvoert, probeert het een tabel te maken die al in uw database is gemaakt.

Opmerking: Vergeet niet eerst een back-up van uw database te maken

Verwijder gebruikerstabel uit de database verwijder ook gebruikersinvoer van migraties tafel.

Voer daarna het Artisan-commando migreren uit:php artisan migrate

Nu is een andere uw vraag:Hoe voeg ik nieuwe kolommen toe aan mijn bestaande tabel?

U moet een tabel maken met dit commando:

php artisan make:migration create_users_table

De uitvoer die je hebt gekregen, ziet er als volgt uit:Migratie gemaakt:2019_04_12_070152_create_users_table

Uw migratiestructuur is zoiets:

public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

Nu wilt u nieuwe kolommen toevoegen aan uw bestaande gebruikerstabel

php artisan make:migration add_phone_number_to_users_table --table=users

gebruik het Schema::table() methode (omdat u een bestaande tabel opent en geen nieuwe maakt). En je kunt een kolom als volgt toevoegen:

public function up()
{
     Schema::table('users', function (Blueprint $table) {
         $table->string('phonenumber')->after('name'); // use this for field after specific column.
     });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('users', function (Blueprint $table) {
        $table->dropColumn('phonenumber');
    });
}

Daarna kunt u uw migraties uitvoeren:php artisan migrate

Uw nieuwe kolommen(phonenumber ) zijn nu toegevoegd aan uw bestaande gebruikerstabel , die u in uw database kunt bekijken.

Als je nog steeds twijfelt, bekijk dan deze video



  1. Probleem met PHP en Mysql UTF-8 (speciaal teken)

  2. Monitoring &Ops Management van MySQL 8.0 met ClusterControl

  3. Wat er ook gebeurt, ik kan MySQL INSERT-instructies niet batchgewijs in Hibernate

  4. MySQL LIKE vs LOCATE