sql >> Databáze >  >> RDS >> Mysql

Přidejte nové sloupce do existující tabulky při migraci v Laravelu

Pokud zkontrolujete trasování chyby:

To znamená, že tabulka uživatelů již existuje, takže když spustíte migraci, pokouší se vytvořit tabulku, která je již vytvořena ve vaší databázi.

Poznámka: Nezapomeňte si nejprve zálohovat databázi

Smazat tabulku uživatelů z databáze také odstranit záznamy uživatelů z migrací tabulka.

Poté spusťte příkaz migrate Artisan:php artisan migrate

Nyní další vaše otázka zní:Jak přidat nové sloupce do mé stávající tabulky?

Pomocí tohoto příkazu musíte vytvořit tabulku:

php artisan make:migration create_users_table

Výstup jste dostali takto:Vytvořená migrace:2019_04_12_070152_create_users_table

Vaše migrační struktura je něco takového:

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

Nyní chcete přidat nové sloupce do tabulky stávajících uživatelů

php artisan make:migration add_phone_number_to_users_table --table=users

použijte Schema::table() metoda (když přistupujete k existující tabulce, nevytváříte novou). A můžete přidat sloupec takto:

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

Poté můžete spustit migrace:php artisan migrate

Vaše nové sloupce (phonenumber ) jsou nyní přidány do vaší stávající tabulky uživatelů , kterou si můžete prohlédnout ve své databázi.

Pokud máte stále nějaké pochybnosti, podívejte se na toto video



  1. SQL - Jak vybrat řádek se sloupcem s maximální hodnotou

  2. Oracle Regexp k nahrazení \n,\ra \t mezerou

  3. Problém s MySql a vkládáním posledního ID zůstává

  4. Datum v UTC v mysql