自动迁移
自动迁移你的模型,使之保持最新状态。
警告: 自动迁移 只会 创建表、缺失的列、缺失的索引, 不会 更改现有列的类型或删除未使用的列,以此来保护您的数据。
| 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)")
 |