亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 Gorm 向現有列添加默認值

如何使用 Gorm 向現有列添加默認值

Go
神不在的星期二 2022-06-21 10:18:02
我正在使用 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{})有什么方法可以使用內置的遷移功能將默認值添加到列?我搜索了文檔,似乎我只能更改現有列的類型!如果沒有,關于為什么通過遷移簡單地將默認值添加到列的任何建議?
查看完整描述

2 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

你試過sql標簽嗎?

`sql:"DEFAULT:current_timestamp"`


查看完整回答
反對 回復 2022-06-21
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

gorm 提供的自動遷移不會刪除或修改您的列,并且有充分的理由,它是不安全的。我有一個類似的問題。我需要從我的一列中刪除空約束,但在 gorm 中找不到任何可以做到這一點的東西,而且我很確定它不會。我為此編寫了自己的函數。您可以輕松地做類似的事情。

請看一下這兩個提交:thisthis。您基本上可以這樣做是為接口定義一個方法,然后為該類型(和類型,如果需要)Dialect編寫該方法的實現。commonDialectpostgres

希望這可以幫助。如果您在實施方面遇到任何問題或有任何疑問,請隨時問我。


查看完整回答
反對 回復 2022-06-21
  • 2 回答
  • 0 關注
  • 455 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號