sql >> データベース >  >> RDS >> Mysql

Laravelでの移行で既存のテーブルに新しい列を追加する

    エラートレースで確認した場合:

    これは、ユーザーテーブルを意味します すでに存在するため、移行を実行すると、データベースにすでに作成されているテーブルを作成しようとしています。

    注: 最初にデータベースをバックアップすることを忘れないでください

    ユーザーテーブルを削除します データベースから、移行からユーザーエントリも削除します テーブル。

    その後、migrateArtisanコマンドを実行します。php artisan migrate

    もう1つの質問は、既存のテーブルに新しい列を追加する方法です。

    次のコマンドを使用してテーブルを作成する必要があります:

    php artisan make:migration create_users_table
    

    次のような出力が得られました: Created Migration:2019_04_12_070152_create_users_table

    移行構造は次のようなものです:

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

    次に、既存のユーザーテーブルに新しい列を追加します。

    php artisan make:migration add_phone_number_to_users_table --table=users
    

    Schema::table()を使用します メソッド(新しいテーブルを作成するのではなく、既存のテーブルにアクセスしているため)。そして、次のような列を追加できます:

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

    その後、移行を実行できます:php artisan migrate

    新しい列(phonenumber )が既存のユーザーテーブルに追加されました 、データベースで表示できます。

    それでも疑問がある場合は、このビデオ をご覧ください。



    1. Macはターミナルを使用してmysqlをインストールして開きます

    2. OracleからPostgreSQLへの移行-知っておくべきこと

    3. 挿入された行のPKガイドを取得するための最良の方法

    4. MySQLの単純な選択クエリは遅い