为了账号安全,请及时绑定邮箱和手机立即绑定

使用 golang-migrate/migrate 进行 Gorm 迁移

使用 golang-migrate/migrate 进行 Gorm 迁移

Go
三国纷争 2022-07-11 15:08:24
我决定使用gorm作为我的 ORM。我想使用golang-migrate/migrate 进行迁移,因为看起来 GORM 没有版本化的迁移文件。我宁愿使用 CLI 进行迁移,而不是使用自动迁移。我阅读了 gorm 文档,但没有看到 gorm 如何将模型转换为 SQL 表。有没有关于为 gorm 生成的 SQL 表的示例或文档?(尤其是类型或关联如何映射到 SQL)
查看完整描述

2 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

阅读 gorm 文档,但我没有看到 gorm 如何将模型转换为 SQL 表。有没有关于为 gorm 生成的 SQL 表的示例或文档?(尤其是类型或关联如何映射到 SQL)

查看声明模型段落:

列数据类型,喜欢使用兼容的通用类型,例如:bool、int、uint、float、string、time、bytes,适用于所有数据库,也可以和其他标签一起使用,如not null、size、autoIncrement…也支持指定数据库数据类型,如varbinary(8),使用指定数据库数据类型时,需要是全数据库数据类型,例如:MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT

例如

type Post struct {

  ID     uuid.UUID `gorm:"type:uuid;default:uuid_generate_v4()"`

  Title  string

  Tags   pq.StringArray `gorm:"type:text[]"`

}


查看完整回答
反对 回复 2022-07-11
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

没有直接的解决方案可以从您的模型中自动生成 SQL。在 golang-migrate/migrate 中,您应该为每个版本编写升级/降级迁移版本的 SQL 脚本,并且您不能使用 gorm 生成这些文件。

您应该手动使您的 gorm 模型与迁移脚本同步。


查看完整回答
反对 回复 2022-07-11
  • 2 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信