Fork me on GitHub

GORM之Automigrate

gorm中的Automigrate()操作,其作用主要是刷新数据库中的表格,使其保持最新,即让数据库之前存储的记录的表格字段和程序中最新使用的表格字段保持一致(只增不减)。

以sqlite数据库存储为例(数据库文件查看,可以使用sqlite browser):

第一次写入数据库的字段内容为

1
2
3
4
5
type Product struct {
gorm.Model
Code string
Price string
}

其在数据库的存储格式如下:

新增字段

如果Product新增一个Age字段如下:

1
2
3
4
5
6
type Product struct {
gorm.Model
Code string
Price string
Age string
}

调用automigrate后,

1
db.AutoMigrate(&Product{})

数据库会自动为之前存储的item新增age字段,内容为空(NULL)

删除字段
1
2
3
4
type Product struct {
gorm.Model
Code string
}

调用Automigrate后,数据库之前记录的item保持不变,新增item只有Code一个column,price和age保持为空(NULL)

您的鼓励是我持之以恒的动力