Mysql
 sql >> Database >  >> RDS >> Mysql

Aggiungi nuove colonne alla tabella esistente in una migrazione in Laravel

Se controlli la traccia dell'errore:

Ciò significa che la tabella utenti esiste già, quindi quando esegui le migrazioni sta tentando di creare una tabella che è già stata creata nel tuo database.

Nota: Non dimenticare di eseguire prima il backup del database

Elimina tabella utenti dal database elimina anche le voci degli utenti da migrazioni tabella.

Dopo, esegui il comando migra Artisan:php artisan migrate

Ora un'altra tua domanda è:Come aggiungere nuove colonne nella mia tabella esistente?

Devi creare una tabella usando questo comando:

php artisan make:migration create_users_table

L'output che hai ottenuto è questo:Migrazione creata:2019_04_12_070152_create_users_table

La tua struttura di migrazione è qualcosa di simile:

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();
        });
    }

Ora vuoi aggiungere nuove colonne nella tabella degli utenti esistenti

php artisan make:migration add_phone_number_to_users_table --table=users

usa lo Schema::table() metodo (mentre stai accedendo a una tabella esistente, non creandone una nuova). E puoi aggiungere una colonna come questa:

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');
    });
}

Dopo, puoi eseguire le tue migrazioni:php artisan migrate

Le tue nuove colonne(phonenumber ) vengono ora aggiunti alla tua tabella utenti esistente , che puoi visualizzare nel tuo database.

Se hai ancora qualche dubbio, guarda questo video