【发布时间】:2023-01-12 03:02:26
【问题描述】:
我的 sqlalchemy 代码需要同时支持 sqlite 和 postgres,但现在它不适用于 sqlite。
sqlalchemy.exc.StatementError: (builtins.TypeError) SQLite DateTime 类型只接受 Python datetime 和 date 对象作为输入。
我检查了Error - "SQLite DateTime type only accepts Python " "datetime and date objects as input.",但在我的整个代码库中进行此更改是不可能的,因为它有不止一个地方使用日期字符串而不是日期时间
这是我的代码,它适用于 postgres 引擎,但不适用于 sqlite,我可以修改除上述链接建议之外的任何内容,以便我的代码在 sqlite 和 postgres 上运行
from sqlalchemy import create_engine, Column, Integer
from sqlalchemy.orm import declarative_base, Session
from sqlalchemy.types import DateTime
Base = declarative_base()
class Foo(Base):
__tablename__ = "foo"
id = Column(Integer, primary_key=True)
col = Column(DateTime)
engine = create_engine("postgresql://tony:tony@localhost:5432")
# engine = create_engine("sqlite:///db.db")
Base.metadata.create_all(engine)
with Session(engine) as session:
session.add(Foo(col='2023-01-07T11:08:31Z'))
session.commit()
【问题讨论】:
标签: python sql postgresql sqlite sqlalchemy