Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Adicionar novas colunas à tabela existente em uma migração no Laravel


Se você verificar no rastreamento de erro:

Isso significa que a tabela de usuários já existe então quando você executa suas migrações ele está tentando criar uma tabela que já está criada em seu banco de dados.

Observação: Não se esqueça de fazer backup do seu banco de dados primeiro

Excluir tabela de usuários do banco de dados também exclui entradas de usuários de migrações tabela.

Após, execute o comando migrate Artisan:php artisan migrate

Agora outra sua pergunta é:Como adicionar novas colunas na minha tabela existente?

Você tem que criar uma tabela usando este comando:
php artisan make:migration create_users_table

A saída ficou assim:Migração criada:2019_04_12_070152_create_users_table

Sua estrutura de migração é algo assim:
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();
        });
    }

Agora você deseja adicionar novas colunas em sua tabela de usuários existente
php artisan make:migration add_phone_number_to_users_table --table=users

use o Schema::table() método (já que você está acessando uma tabela existente, não criando uma nova). E você pode adicionar uma coluna como esta:
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');
    });
}

Depois, você pode executar suas migrações:php artisan migrate

Suas novas colunas(phonenumber ) agora são adicionados à sua tabela de usuários existente , que você pode visualizar em seu banco de dados.

Se você ainda tiver alguma dúvida, veja este vídeo