gpt4 book ai didi

ruby-on-rails - Rails Upsert PG created_at 问题

转载 作者:行者123 更新时间:2023-12-04 12:05:35 25 4
gpt4 key购买 nike

抱歉,如果之前已经回答过这个问题,但我找不到明确的答案。
肯定有人在使用 upsert 时遇到过这个问题您需要指定每一列,包括 created_atupdated_at ?
我怎么能不更新created_at upsert 发生时的时间戳?我只想插入 created_at一次。

a = User.upsert({
name: ....,
age: ....
created_at: DateTime.now,
updated_at: DateTime.now
}, unique_by: :upsert_user_index )

最佳答案

另一个相似/不同的答案
使用默认值更新现有表:

change_column :table_foos, :created_at, :datetime, null: false, default: -> { "CURRENT_TIMESTAMP" }
change_column :table_foos, :updated_at, :datetime, null: false, default: -> { "CURRENT_TIMESTAMP" }
使用默认值创建新表:
create_table :table_foos do |t|
#...
# date with timestamp
t.datetime :last_something_at, null: false, default: -> { "CURRENT_TIMESTAMP" }

# standard timestamps
t.timestamps({default: -> { "CURRENT_TIMESTAMP" }})
end

关于ruby-on-rails - Rails Upsert PG created_at 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62919565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com