Laravel的資料庫設定是放在config/database.php中,設定檔中可以設定所有資料庫連線設定,其中包含MySQL、Postgres、SQLite、SQL Server都有。
抓一段設定檔來看
'mysql' => [
'read' => [
'host' => '192.168.1.1',
],
'write' => [
'host' => '196.168.1.2'
],
'sticky' => true,
'driver' => 'mysql',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
],
這裡有一個小細節,就是可以看到設定檔中有分read跟write的位置不同,這是我覺得laravel很酷的部分,如果有一天你的系統需要做讀寫分離的資料庫設計,只要像這樣就可以使用,真的太神奇了啦!!!!!!!!!!(當然也不是這樣設置就OK了啦~還是有些DB的部分需要自己去協調囉)
備註:
讀寫分離以這設定檔來說,select 時會使用 read , 而執行 delete, update, insert 時則會使用 write。
如果要使用原生的sql,可以試看看在controller中這樣玩(爬文看到的資料,我自己是沒測試過,況且資料庫都還沒建立咧~先看看就好了!)
public function index()
{
$users = DB::select('select * from users where active = ?', [1]);
return view('user.index', ['users' => $users]);
}
但這部分還不急,因為laravel還有許多地方要先跑過一次,以我現在的安排,之後可能要先玩看看資料庫的版本控制、可以快速新增刪除假資料…等,這些都玩了之後才有機會開始碰DB。
所以流程上會是
資料庫設定檔->建立資料庫版本控制->快速新增刪除假資料的神奇玩具->DB
這部分在我第一次看的時候,其實很不了解為什麼,我不是就要下SQL嗎?為什麼要看那麼多東西,是等自己大略的先看完一次之後,才理解了這流程的意思,所以特別先註記一下。
建立資料庫版本控制 : 可以減少工程師手動下SQL的機會
快速新增刪除假資料的神奇玩具 : 可以迅速做出你所需要的測試資料