到目前為止,已經完成最基礎的功能,因為自己營運一個伺服器很麻煩,在眾多免費方案之下就選了一些人推薦的fly.io
了,免費版本有幾個限制:
首先安裝command line工具:
curl -L https://fly.io/install.sh | sh
接下來按照下面
# 如果沒有帳號的話要先註冊一個
flyctl auth signup
# 如果已經有帳號就直接登入吧
flyctl auth login
# 接下來在專案資料夾下達部屬命令
flyctl launch
後續的就按照CLI工具按表操課,網路上已經多有介紹就不贅述了。
網路上比較少人提到的是關於Fly.io提供的postgres服務部份,在fly launch
的過程中會問你要不要啟用postgres,這時如果選擇是的話就會幫你一併準備一個資料庫服務,再回去應用程式服務的secret區段的話就會發現它幫你把資料庫連線加secret env中了,這一步會幫你產生一個app專用的連線字串:
如果事後才決定要啟用資料庫服務的話就需要使用:
# 新增postgres實體
flyctl postgres create
# 將資料庫附加到app
flyctl postgres "postgres服務的名稱" --app "要附加的應用程式"
# 也可以直接幫應用程式加上secret
fly secrets set DATABASE_URL=postgres://example.com/mydb
不過做到這一步還不要開心的太早,注意一下CLI給我們的database資訊
Postgres cluster marvinhsu-postgres created
Username: postgres
Password: password
Hostname: marvinhsu-postgres.internal
Flycast: fdaa:1:b:0:1::a
Proxy port: 5432
某一次更新之後,fly.io的postgres只能夠使用內網連線,換句話說我無法在開發的時候直接在本地端對資料庫做操作,這時候就要啟用代理:
flyctl proxy 5432:5432 marvinhsu-postgres
這樣就可以把postgres服務連接到本機的5432 port,在本機使用localhost:5432就可以連上DB進行異動了,接下來就是到migration資料夾使用seaORM的指令對資料庫做遷移了。