# Intro 在使用 golang 的情境下, 有一個很常用的 migration 工具 golang-migrate
但是在不同系統下安裝我覺得不太容易
所以記錄一下
# Install github 上有提供不同作業系統的安裝方式
cmd/migrate
目前測試 Mac / Ubuntu 有成功
Mac OS X 使用 homebrew 安裝
brew install golang-migrate 在 mac 上面安裝是蠻容易的
Ubuntu 20.04 在 ubuntu 遇到許多權限的問題
github 上面的 *.deb 安裝需要調整指令
curl -L https://packagecloud.io/golang-migrate/migrate/gpgkey | sudo apt-key add - sudo sh -c 'echo "deb https://packagecloud.io/golang-migrate/migrate/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/migrate.list' sudo apt-get update sudo apt-get install -y migrate # Usage 要連接的 DB 的格式
...
Category: Golang
一直以來大部分時間都在用 PHP 開發
所以也用 PHP 來處理 HTML Form
所以都下意識地認為 <input type="checkbox" name="game[]" value="FGO">
這樣的 name="game[]" 的處理方式是正規的處理 HTML Form 的多選的方式
也疑惑為何大多的 HTML Form 的教學甚至 MDN 都沒有提到這件事
就在某一天我在檢視到同事寫的 code 時
發現同事用 JavaScript 處理
硬爬出來自己組字串送出去
我才想起這令人感到恐懼的事情
因為公司同事是寫 golang 的專門, 就算前端不熟
應該也不至於連這樣概念都沒有就用硬爬的方式處理
所以再調整的同時也跟同事確認後
我也真正的直視這問題
到底要怎麼處理表單中多選的資料?
PHP 寫久的人大多都知道要用上面列出的方法
name="game[]"
就是 game + []
但是當我認真地尋找關於這個問題時
意外地發現了一篇 stackoverflow 的問答
Several Checkboxes sharing the same name
其實 W3C 根本沒有管你 name="" 重複要如何處理
以下是 PHP, nodejs, golang 的原生方式來測試的結果
# PHP 以下問答有提供了 PHP doc 說明 PHP 如何處理多選
...
# golang - note log ## 時間格式的雷 2006-01-02 15:04:05
https://golang.org/pkg/time/#Time.Format
Golang 时间格式化的奇怪设定 —— 为什么你一直出错
## Array Array
## 確認 type import "reflect" x := 7 reflect.TypeOf(x).Kind(); ## Convert interface to string var x interface{} = "abc" str := fmt.Sprintf("%v", x) ## Print statuct fmt.Printf("%+v\n", struct)
...
# gvm ## Intro gvm
Golang version manger
## Usage Install bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) Add to .bashrc or .zshrc # added gvm command to shell source "$HOME/.gvm/scripts/gvm" # directory path for GO export GOPATH=$HOME/gopath export GOROOT=$HOME/go export PATH=$PATH:$GOROOT/bin Install go gvm install go1.4 -B gvm use go1.4 export GOROOT_BOOTSTRAP=$GOROOT gvm install go1.9 Finall add command to .bashrc or .zshrc gvm use go1.9 Refer - Go - 在 OSX 安裝 GVM
...