今天來接著聊部署之後的設定
昨天的網站已經成功上線了,也可以看到畫面
但是如果我們嘗試登入的話,就會看到錯誤畫面
這是因為我們還沒有在雲端系統上安裝好資料庫
下面我們來說
在 Laravel Cloud 我們要建立一個資料庫
可以在「Environment」內點擊「Add resource」
點擊「Add resource」後選「Database」
目前我們沒有已經存在的資料庫,所以選擇「Create New DB Cluster」
之後都用預設,目前預設使用的是 MySQL 8。
送出後會出現「Unsaved changes」,點選「Save」後選擇「Save and Deploy」
選擇之後,我們就可以成功的在雲端上面做註冊登入的流程了!
能達成我們要做的事情之後,我們來說明在這段過程中,Laravel Cloud 具體做了什麼事情來建立資料庫
首先,由於我們對資料庫架構的所有設定,都是透過 migration 進行的。
所以 Laravel Cloud 可以根據我們的 migration 知道專案的整個資料庫結構。
Laravel 要做的流程,就是建立好資料庫,和專案進行串接,然後執行 migration 將資料庫架構建立完成。
Laravel 設置資料庫的位置在專案的 .env
檔內,我們可以看看裡面有關資料庫的內容
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
在本地執行時,使用的是 sqlite
,而且這個檔案是沒有傳到 GitHub Repo 的,那雲端的資料庫是怎麼改成其他資料庫的呢?
這就是 Laravel Cloud 的優勢了:由於我們上傳的一定是一個 Laravel 專案,然後我們的資料庫又是透過 Laravel Cloud 建立的
所以 Laravel 可以在建立資料庫時,取得資料庫的資訊,並在專案內直接調整 .env
檔內容,達成本地和雲端不同資料庫的效果
我們可以在「Setting」裡面的「Injected Variables」看到這些內容
這些資訊我們也可以在「Environment」裡面的「Database credentials」裡面看到
另外這邊還有提示文字
Public endpoint is disabled, so these credentials will only work for Cloud environments in the same region. You can change this in the database settings.
這是一個保護機制,就是專案在預設時,資料庫只允許雲端環境能進行操作,避免有人直接從外部直接連線資料庫進行操作
那麼當我們要調整資料庫內的資料時,該怎麼辦呢?
這部分我們就留到明天討論囉!我們明天見!