gorm
テーブルの記載
これを元にマイグレーションをしてくれるわけではないようです(そのようなライブラリも存在する)
// User user info type User struct { ID int64 `gorm:"column:id;primary_key"` Name string `gorm:"column:name" sql:"not null;type:varchar(256)"` Email string `gorm:"column:email" sql:"not null;type:varchar(256)"` }
マイグレーション
gormにはマイグレーションするような機能はなさそうなので、Go製のマイグレーションツールを使用
テーブルの作成
USER=$DB_USER_NAME PASSWORD=$DB_USER_PASSWORD HOST=$DB_HOST DB=$MYSQL_DATABASE migrate.linux-amd64 -path ./migrate -database 'mysql://mysql:secret@tcp(mysql:3306)/db' up 1
テーブルの削除
migrate.linux-amd64 -source file://migrate -database 'mysql://mysql:secret@tcp(mysql:3306)/db' down 1
Update
// 構造体を使っての更新の例
db.Model(&user).Updates(
users.User{
Name: user.Name,
Email: user.Email,
})
Delete
// delete db.Model(&user).Delete(&user) // エラーハンドリングの例 if err := db.Model(&user).Delete(&user).Error; err != nil { return errors.New("Delete failed") }