diff --git a/pkg/core/bootutils/deps.py b/pkg/core/bootutils/deps.py index c1db6482..47b87d35 100644 --- a/pkg/core/bootutils/deps.py +++ b/pkg/core/bootutils/deps.py @@ -35,6 +35,7 @@ required_deps = { "telegram": "python-telegram-bot", "certifi": "certifi", "mcp": "mcp", + "sqlmodel": "sqlmodel", } diff --git a/pkg/entity/persistence/model.py b/pkg/entity/persistence/model.py index 9ef875db..a77ffd27 100644 --- a/pkg/entity/persistence/model.py +++ b/pkg/entity/persistence/model.py @@ -1,4 +1,5 @@ import sqlalchemy +import datetime from .base import Base @@ -15,5 +16,5 @@ class LLMModel(Base): api_keys = sqlalchemy.Column(sqlalchemy.JSON, nullable=False) abilities = sqlalchemy.Column(sqlalchemy.JSON, nullable=False, default=[]) extra_args = sqlalchemy.Column(sqlalchemy.JSON, nullable=False, default={}) - updated_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=False) - created_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=False) \ No newline at end of file + created_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=False, server_default=sqlalchemy.func.now()) + updated_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=False, server_default=sqlalchemy.func.now(), onupdate=sqlalchemy.func.now()) \ No newline at end of file diff --git a/pkg/entity/persistence/user.py b/pkg/entity/persistence/user.py index b15969c1..23d309c4 100644 --- a/pkg/entity/persistence/user.py +++ b/pkg/entity/persistence/user.py @@ -1,4 +1,5 @@ import sqlalchemy +import sqlmodel from .base import Base @@ -9,5 +10,5 @@ class User(Base): id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True) user = sqlalchemy.Column(sqlalchemy.String(255), nullable=False) password = sqlalchemy.Column(sqlalchemy.String(255), nullable=False) - created_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=False) - updated_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=False) + created_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=False, server_default=sqlalchemy.func.now()) + updated_at = sqlalchemy.Column(sqlalchemy.DateTime, nullable=False, server_default=sqlalchemy.func.now(), onupdate=sqlalchemy.func.now()) \ No newline at end of file diff --git a/pkg/persistence/mgr.py b/pkg/persistence/mgr.py index b2e674c4..27ffe522 100644 --- a/pkg/persistence/mgr.py +++ b/pkg/persistence/mgr.py @@ -34,11 +34,6 @@ class PersistenceManager: await self.create_tables() - # auto migrate - async with self.get_db_engine().connect() as conn: - await conn.run_sync(self.meta.drop_all) - await conn.run_sync(self.meta.create_all) - async def create_tables(self): # TODO: 对扩展友好 diff --git a/requirements.txt b/requirements.txt index 243d2da7..e01eb373 100644 --- a/requirements.txt +++ b/requirements.txt @@ -34,6 +34,7 @@ dashscope python-telegram-bot certifi mcp +sqlmodel # indirect taskgroup==0.0.0a4 \ No newline at end of file