Laravel5.4框架中資料庫遷移

weixin_34321977發表於2018-04-27

記錄資料庫狀態的改變,可把資料庫的狀態回退回去。

場景:需要顯示出管理員更新資料的時間,在admin表中新增一個updated_at欄位記錄這個時間。順手created_at欄位記錄管理員的註冊時間。
編寫資料庫遷移的前進的方法

命令列下輸入命令列

-> php artisan make:migrationalter_admin_table_add_created_at_updated_at_field

在databases/ migrations/…alter_admin_table_add_created_at_updated_at_field檔案中編寫前進遷移:

public function up()
   {
       // 在這裡寫資料庫前進的狀態, 操作admin表新增created_at, updated_at欄位
       Schema::table('admin', function(Blueprint $table) {
            // 在這裡對admin表進行操作
            // $table->timestamps();
           $table->timestamp('created_at')->nullable();
           $table->timestamp('updated_at')->nullable();
       });
}

命令列執行資料庫遷移前進

-> php artisan migrate

檢視資料表新增的欄位,表示執行成功

說明:mysql的時間戳的資料型別:timestamp,表示時間戳,這種格式的時間戳:2017-06-28 09:48:14

created_at timestampnull,
updated_at timestampnull,

後退

在databases/ migrations/…alter_admin_table_add_created_at_updated_at_field檔案中編寫後退遷移:

publicfunction down()
    {
        // 把admin表的created_at, updated_at刪除
        Schema::table('admin',function(Blueprint $table) {
           $table->dropColumn('created_at');
           $table->dropColumn('updated_at');
        });
    }

命令列執行資料庫遷移前進

-> php artisan rollback

執行後的效果如果created_at, updated_at欄位被刪除了表示成功
資料庫遷移的其他命令

migrate              //執行所有遷移檔案的up方法
migrate:reset        //執行所有遷移檔案的down方法
migrate:rollback     //執行最後一次遷移檔案的down方法
migrate:status       //檢視資料庫遷移檔案的執行情況
migrate:install      //建立記錄資料庫遷移檔案的執行情況的表
migrate:refresh      //先把執行所有的遷移檔案的down方法,再執行所有的遷移檔案的up方法 結果就是內容清空
migrate:status       //檢視資料庫遷移檔案的執行情況

相關文章