數據庫遷移是數據庫的版本管理,要使用數據庫遷移,需要在.env文件中連接好數據庫(不多說)。laravel本身已經存在user表和password_resets表的遷移了,因此,執行
php artisan migrate
便會在數據庫中創建好user表、password_resets表和migrations表。migrations表是版本記錄表。
命令執行的其實是 database\migration 下的遷移文件。遷移文件中調用的方法會替我們執行數據庫操作(建表)。每個文件的命名對應遷移創建的時間和遷移的表名稱。
現在我們要添加自己的遷移表。
創建遷移
方法一:創建數據模型的時候加上 -m ,例如:
php artisan make:model Models/Moment -m
就會在 database/migrations 下看到新建的遷移文件。打開文件,主要有 up 和 down 方法。
- 當我們運行遷移時,
up
方法會被調用; - 當我們回滾遷移時,
down
方法會被調用。
方法二:
php artisan make:migration create_moments_table
其中 “moments” 就是要創建的表名,這里要寫你自己的表名。
創建表
在up方法中,我們編寫創建表的語句:
1 Schema::create('moments', function (Blueprint $table) { 2 3 $table->increments('id'); 4 5 $table->integer('user_id'); 6 7 $table->string('title'); 8 9 $table->string('content'); 10 11 $table->timestamps(); 12 13 });
保存后執行 php artisan migrate ,會創建5個字段的moments表。
修改表
方法一:修改遷移文件,執行命令
php artisan migrate:refresh
方法二:如果要修改表,新建一個遷移文件:
php artisan make:migration alter_moments_table
其中 “moments” 就是要修改的表名,這里要寫你自己的表名。
在 up 方法中:
1 Schema::table('moments', function (Blueprint $table) { 2 $table->string('test'); 3 });
與創建表的區別是,create 方法改成 table 方法。