gorm支持pgsql数据库的自动迁移么?

发布于 2022-09-11 19:31:04 字数 706 浏览 19 评论 0

gorm 的createTable方法或AutoMigrate方法如何在创建表时,指定表所在的模式?
我的数据库结构如下图

clipboard.png
默认会创建在public模式中,但是我想让表生成在bbb模式中,请问应该如何操作? 直接指定表名么?

因为mysql数据库和pgsql会使用相同的结构,所以有没有除了再创建一个相同的结构体以外其他的解决方式呢?

type Test struct {
    Name string `json:"name" gorm:"type:varchar(60); unique_index:one"`
    Age int `json:"age" gorm:"type:int; unique_index:one"`
}

问题补充:
1、我为pgsql创建了一个与Test结构完全相同的结构体PGTest,且通过重写TableName方法确实可以指定在bbb模式中创建表,但是每次启动时的自动迁移都会进入重新创建的流程。使用hasTable方法先判断表是否存在然后再进行创建的方式,同样无法找到已经存在的表

2、使用gorm提供的firstOrInit方法时,如果当前的数据已存在,进行Save的时候并非是进行update操作,而是insert,导致报错,请问这个应该如何解决?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

原来是傀儡 2022-09-18 19:31:04

创建两个gorm db对象,分别对应两个库链接。

在一个对象中通过设置表名垮库建表没问题,但是可能会检查不到表存在。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文