我正在使用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命令来完成。
1条答案
按热度按时间e5nqia271#
我会的
重命名原始表
使用原始表名和默认值创建一个新表
用原始表中的数据填充新表
如果一切正常,就把旧table扔了。
希望对你有用。祝你好运!