[Php] Ajouter une nouvelle colonne à la table existante dans une migration


Answers

Je vais ajouter à la réponse de mike3875 pour les futurs lecteurs utilisant Laravel 5.1 et suivants.

Pour rendre les choses plus rapides, vous pouvez utiliser le drapeau "--table" comme ceci:

php artisan make:migration add_paid_to_users --table="users"

Cela ajoutera le contenu de la méthode up et down automatiquement:

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::table('users', function (Blueprint $table) {
        //
    });
}

De même, vous pouvez utiliser l'option --create["table_name"] lors de la création de nouvelles migrations, ce qui ajoutera plus d'informations à vos migrations. Petit point, mais utile quand on en fait plein!

Question

Je n'arrive vraiment pas à comprendre comment ajouter une nouvelle colonne à ma table existante dans ma base de données en utilisant le framework PHP laravel.

J'ai essayé d'éditer le fichier de migration

 public function up()
{
    Schema::create('users', function($table){

         $table->integer("paid");


    });
}

et dans le terminal php artisan migrate:install et migrate

Comment ajouter de nouvelles colonnes?




ces choses sont travaillées sur laravel 5.1.

d'abord, sur votre terminal, exécutez ce code

php artisan make:migration add_paid_to_users --table=users

après cela, allez dans votre répertoire de projet et développez la base de données de l'annuaire - migration et modifier le fichier add_paid_to_users.php, ajoutez ce code

public function up()
{
    Schema::table('users', function (Blueprint $table) {
         $table->string('paid'); //just add this line
    });
}

après cela, revenez à votre terminal et exécutez cette commande

php artisan migrate

espère cette aide.




Vous pouvez ajouter de nouvelles colonnes dans la méthode Schema::create initiale comme ceci:

Schema::create('users', function($table) {
    $table->integer("paied");
    $table->string("title");
    $table->text("description");
    $table->timestamps();
});

Si vous avez déjà créé une table, vous pouvez ajouter des colonnes supplémentaires à cette table en créant une nouvelle migration et en utilisant la méthode Schema::table :

Schema::table('users', function($table) {
    $table->string("title");
    $table->text("description");
    $table->timestamps();
});

La documentation est assez complète à ce sujet, et n'a pas trop changé de la version 3 à la version 4 .






Links