ホームページ  >  記事  >  バックエンド開発  >  Golang でデータベース移行を使用するにはどうすればよいですか?

Golang でデータベース移行を使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-01 17:48:00379ブラウズ

Golang でデータベース移行を使用すると、データベースがコードと確実に同期されます。移行は、Ent や Gormite などのライブラリを使用して実行できます。 Ent の使用: Ent をインストールします。移行ファイルを生成します。移行を実行します。 Gormaigrate の使用: Gormaigrate をインストールします。マイグレーションファイルを作成します(アップマイグレーション機能およびダウンマイグレーション機能を含む)。移行を実行します。

如何在 Golang 中使用数据库迁移?

Golang でデータベース移行を使用するにはどうすればよいですか?

データベース移行は、データベース スキーマの変更を管理して、データベースが常にコードと同期していることを確認するための手法です。 Golang では、[ent](https://entgo.io/docs/merge/) や [gormite](https://github.com/go-gormaigrate/gormaigrate) などのライブラリを使用してデータベースの移行を実行できます。

データベースの移行には Ent を使用します

Ent は、組み込みの移行システムを提供する Golang ORM です。データベース移行に Ent を使用するには、次の手順に従います。

  1. Ent をインストールする:

    go get github.com/ent/ent/cmd/ent
  2. 移行ファイルを生成する:

    ent generate migration AddUser
  3. 移行を実行する:

    ent migrate

データベース移行に Gormite を使用する

ゴーマイグレーションは、Golang でデータベース移行を実行するために使用できるサードパーティ ライブラリです。 Gormaigrate を使用するには、次の手順に従います。

  1. Gormite をインストールする:

    go get github.com/go-gormigrate/gormigrate/v2
  2. 移行ファイルを作成する:

    touch migrations/001_add_user.go
  3. 移行ファイルにコードを記述する:

    import (
     "github.com/go-gormigrate/gormigrate/v2/gormigrate"
     "gorm.io/gorm"
    )
    
    func Up(db *gorm.DB) error {
     type User struct {
         ID   uint `gormigrate:"primary_key"`
         Name string
     }
     return db.AutoMigrate(&User{})
    }
    
    func Down(db *gorm.DB) error {
     return db.Migrator().DropTable("users")
    }
  4. 移行を実行する:

    gormigrate -up

実用的case

user テーブルがあり、そのスキーマが変更されたとします。 Gormite を使用すると、次のような移行ファイルを作成できます:

import (
    "github.com/go-gormigrate/gormigrate/v2/gormigrate"
    "gorm.io/gorm"
)

func Up(db *gorm.DB) error {
    type User struct {
        ID       uint  `gormigrate:"primary_key"`
        Name     string
        Password string
    }
    return db.AutoMigrate(&User{})
}

func Down(db *gorm.DB) error {
    return db.Migrator().DropColumn("users", "password")
}

この移行を実行すると、新しい "password" 列が "users" テーブルに追加されます。

以上がGolang でデータベース移行を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。