自动迁移
自动迁移你的模型,使之保持最新状态。
警告: 自动迁移 只会 创建表、缺失的列、缺失的索引, 不会 更改现有列的类型或删除未使用的列,以此来保护您的数据。
db.AutoMigrate(&User{})
db.AutoMigrate(&User{}, &Product{}, &Order{})
db.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&User{})
|
其它迁移工具
GORM 的自动迁移在大多数情况下都会正常工作,但如果你需要更严格的迁移工具, GORM 提供了通用 DB interface ,这可能对你有帮助。
更多详细信息请参阅 通用接口。
模型方法
Has Table
db.HasTable(&User{})
db.HasTable("users")
|
Create Table
db.CreateTable(&User{})
db.Set("gorm:table_options", "ENGINE=InnoDB").CreateTable(&User{})
|
Drop table
db.DropTable(&User{})
db.DropTable("users")
db.DropTableIfExists(&User{}, "products")
|
ModifyColumn
修改列类型为给定的值
db.Model(&User{}).ModifyColumn("description", "text")
|
DropColumn
db.Model(&User{}).DropColumn("description")
|
Add Indexes
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")
|
Remove Index
db.Model(&User{}).RemoveIndex("idx_user_name")
|
Add Foreign Key
db.Model(&User{}).AddForeignKey("city_id", "cities(id)", "RESTRICT", "RESTRICT")
|
Remove ForeignKey
db.Model(&User{}).RemoveForeignKey("city_id", "cities(id)")
|