以下の内容はhttps://y-ni-shi.hatenablog.com/entry/2020/02/05/230202より取得しました。


gormの更新と削除(マイグレーションも)

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製のマイグレーションツールを使用

github.com

テーブルの作成

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")
    }



以上の内容はhttps://y-ni-shi.hatenablog.com/entry/2020/02/05/230202より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14