postgresql - 如何使用Gorm向现有列添加默认值

标签 postgresql go go-gorm

我正在使用gorm并具有如下模型:

type MyModel struct {
    CreationTime      time.Time 
    UpdateTime        time.Time
}
我意识到在部署数据库之后,创建时间和更新时间并没有增加创建和更新项目的时间!我试图通过将模型更新为以下内容来解决此问题:
type MyModel struct {
    CreationTime      time.Time       `gorm:"default:current_timestamp"`
    UpdateTime        time.Time       `gorm:"default:current_timestamp ON update current_timestamp"`
}
但是,像下面这样的自动迁移不会将这些默认值应用于已经存在的表!
 db.AutoMigrate(&MyModel{})
有什么方法可以使用内置的迁移功能向列添加默认值?我搜索了文档,似乎只能更改现有列的类型!如果不是,为什么要通过迁移将默认值简单地添加到列的任何建议?

最佳答案

您是否尝试过sql标签?

`sql:"DEFAULT:current_timestamp"`

关于postgresql - 如何使用Gorm向现有列添加默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63105921/

相关文章:

sql - 为什么 Postgres 执行顺序扫描,其中索引将返回 < 1% 的数据?

go - 为什么我在其他函数中设置值的结构中的字段始终为零?

postgresql - postgres,go-gorm-无法预加载数据

pointers - 在 Go 中使用类似的指针结构分配结构

go - 如何在 Gorm 中正确执行部分更新?

ruby-on-rails - rails : storing datatype in a column?

postgresql - 如何计算销售成本

postgresql - postgres 部分索引

go - golang允许在一个包中进行多个初始化的目的是什么?

html - Go html模板访问范围内的结构字段