在laravel專案中,建立資料表很方便,尤其是專案上雲端後,可以很快速的佈署,今天就介紹migration功能,順便講解我目前的專案規劃的關聯式資料表吧。
首先,請先再.env裏面設定好連線。
輸入database的帳密。laravel會幫你連到database,假設是使用mysql資料庫。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE='Task_Management'
DB_USERNAME=root
DB_PASSWORD=123456789
設定完之後,請在mysql中新增一個資料庫,名稱和.env中設定的名稱一樣
提醒:若是使用php artisan serve
在做開發,修改.env後必須重開php artisan serve
這樣設定才會生效喔
php artisan make:migration {name}
下完指令後,會新增一個檔案在database/migrations/ 內
這個範例是我專案的其中一個migration
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class Users extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('username');
$table->string('email');
$table->string('password');
$table->string('image')->nullable();
$table->char('remember_token', 100);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('username');
$table->string('image')->nullable();
$table->char('remember_token', 100);
$table->timestamps();
laravel提供許多函式,可以很方便的設定資料表,想知道更多詳細,可以去官方網站上找,我這邊就不多做介紹了。我建議建立資料表時,最基本可以加上$table->id();
及$table->timestamps();
這兩個欄位,會比較方便操作資料庫喔。
新增好之後只要下指令
php artisan migrate
laravel就會自動幫你將table建立好了
另外,若是你想要單獨migrate一個檔案,可以使用
php artisan migrate --path={檔案路徑}
在重建table時,或許你會遇到**Nothing to migrate.**這訊息,而不讓你建立table
使用migrate建立table會依照建立的時間先後順序建立table
可以使用這個指令看到:
php artisan migrate:status
然後你可以使用
php artisan migrate:rollback
回復成未建立的狀態,但是記得資料庫內的table需要手動刪除,刪除後即可再次使用migrate重建表單
若是你想要重新建立所有table,可以使用
php artisan migrate:refresh
這個指令會將你所有的table都刪除,再重新建立所有table
migration這個功能剛開始用的時候比起原生是有點綁手綁腳的,但是只要設定好之後,別人在github上clone下你的專案,可以一鍵直接建立所有table,真的是很方便,這就是laravel這個功能強大之處。今天就介紹到這邊吧,明天見!