今回は、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初期化関数)
