自動マイグレーション
スキーマを最新に保つため、自動的に移行します。
警告:自動マイグレーションはテーブルや不足しているカラムとインデックスのみ生成します。データ保護のため、既存のカラム型の変更や未使用のカラムの削除はしません。
db.AutoMigrate(&User{})
  db.AutoMigrate(&User{}, &Product{}, &Order{})
 
  db.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&User{})
  | 
 
その他マイグレーションツール
GORMの自動マイグレーションはほとんどの場合で、うまく機能します。しかし、よりしっかりしたマイグレーションツールを求める方のために、GORMは一般的なDBインターフェースも提供します。
Refer Generic Interface for more details.
スキーマメソッド
HasTable
 db.HasTable(&User{})
 
  db.HasTable("users")
 
  | 
 
CreateTable
 db.CreateTable(&User{})
 
  db.Set("gorm:table_options", "ENGINE=InnoDB").CreateTable(&User{})
 
  | 
 
DropTable
 db.DropTable(&User{})
 
  db.DropTable("users")
 
  db.DropTableIfExists(&User{}, "products")
 
  | 
 
ModifyColumn
カラムの型を指定した値に変更します
 db.Model(&User{}).ModifyColumn("description", "text")
 
  | 
 
DropColumn
 db.Model(&User{}).DropColumn("description")
 
  | 
 
AddIndexes
 db.Model(&User{}).AddIndex("idx_user_name", "name")
 
  db.Model(&User{}).AddIndex("idx_user_name_age", "name", "age")
 
  db.Model(&User{}).AddUniqueIndex("idx_user_name", "name")
 
  db.Model(&User{}).AddUniqueIndex("idx_user_name_age", "name", "age")
 
  | 
 
RemoveIndex
 db.Model(&User{}).RemoveIndex("idx_user_name")
 
  | 
 
AddForeignKey
 
 
 
  db.Model(&User{}).AddForeignKey("city_id", "cities(id)", "RESTRICT", "RESTRICT")
 
  | 
 
RemoveForeignKey
db.Model(&User{}).RemoveForeignKey("city_id", "cities(id)")
  |