如何将postgres datetime列更改为默认的datetime.utcnow

wd2eg0qa  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(304)

我正在使用flask(sqlalchemy)和postgres,我已经声明了一个模型,其中的datetime列默认为 datetime.utcnow() 由python中的datetime模块提供。然而,我注意到在新行插入中时间从未改变,我做了一些挖掘,发现我不应该调用函数,而是这样传递它: datetime.utcnow 因此,我现在希望更改列以反映此更改,而不必删除表/列。
我已经试过了 ALTER TABLE mytable ALTER COLUMN trans_time SET DEFAULT datetime.utcnow 我得到以下错误: ERROR: cannot use column reference in DEFAULT expression 注意:我没有为这个项目设置迁移,所以现在没有帮助。我只需要通过sql命令来完成。

e5nqia27

e5nqia271#

我会的
重命名原始表
使用原始表名和默认值创建一个新表
用原始表中的数据填充新表
如果一切正常,就把旧table扔了。
希望对你有用。祝你好运!

相关问题