defineSQL.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import sqlalchemy_utils
  2. from sqlalchemy import create_engine, Enum, Text, DateTime, Sequence
  3. from sqlalchemy.orm import Session
  4. from sqlalchemy.ext.declarative import declarative_base
  5. import sqlalchemy
  6. from contextlib import contextmanager
  7. from plugins.common import settings
  8. # 创建对象的基类:
  9. Base = declarative_base()
  10. if not settings.logging_path:
  11. engine = create_engine("sqlite:///../record.db?check_same_thread=False")
  12. else:
  13. engine = create_engine(settings.logging_path)
  14. if not sqlalchemy_utils.database_exists(engine.url):
  15. sqlalchemy_utils.create_database(engine.url)
  16. class 记录(Base):
  17. __tablename__ = '记录'
  18. 时间 = sqlalchemy.Column(sqlalchemy.DateTime, primary_key=True)
  19. IP = sqlalchemy.Column(sqlalchemy.String(3*4+3))
  20. 问 = sqlalchemy.Column(sqlalchemy.Text)
  21. 答 = sqlalchemy.Column(sqlalchemy.Text)
  22. Base.metadata.create_all(engine)
  23. session = Session(engine)
  24. @contextmanager
  25. def session_maker(session=session):
  26. try:
  27. yield session
  28. session.commit()
  29. except:
  30. session.rollback()
  31. raise
  32. finally:
  33. session.close()
粤ICP备19079148号