Golang – GORMでテーブル生成する

今回は、GORMを使用時、自動にテーブルを生成する方法について調べてみます。

Auto Migrationとは

スキーマを自動的にマイグレーションし、スキーマを最新の状態に保ちます。

AutoMigrateはテーブルを作成し、外部キー、制約、列、インデックスが欠落し、サイズ、精度、null許容型が変更された場合、既存の列のタイプを変更します。データを保護するために未使用の列は削除されません。

使ってみましょう

// ①
db.AutoMigrate(&User{})

// ②
db.AutoMigrate(&User{}, &Product{}, &Order{})
  • テーブル生成するときは「AutoMigrate」関数を使います。
  • AutoMigrateはパラメータとしてInterfaceを渡しますが、それは構造体を渡します。
  • ①:Userテーブルを生成します。一つだけ。
  • ②:複数のテーブルを生成します。(User、Product、Order)
実際ソースコード
  • User構造体を作成します。
  • dbの変数宣言をします。
  • 宣言したdb変数に繋ぎます。
  • 接続インスタンスを取得するにはOpen関数を使います。
  • AutoMigrate関数にUser構造体をインタフェース形で渡すとテーブル生成されます。
  • カラムは構造体のフィールド名となります。

終わりに

今回はAutoMigrate関数について調べてみました。

テーブルを生成するときに使うので、アプリケーション起動時に実行しなければならないため、初期化フィールドでよく使われるらしいです。(maingパッケージのinit関数内やDB初期化関数)

コメントを残す