SQLAlchemy1.0->SQLAlchemy2.x Column->mapped-column

This commit is contained in:
2024-12-08 10:16:10 +09:00
parent 3aec075927
commit 91df7ed0fa
2 changed files with 107 additions and 107 deletions

View File

@@ -1,7 +1,7 @@
import jwt import jwt
from fastapi.security import OAuth2PasswordBearer from fastapi.security import OAuth2PasswordBearer
from passlib.context import CryptContext from passlib.context import CryptContext
from datetime import datetime, timedelta from datetime import datetime, timedelta,timezone
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms from cryptography.hazmat.primitives.ciphers import Cipher, algorithms
import os import os
import base64 import base64
@@ -27,9 +27,9 @@ def verify_password(plain_password: str, hashed_password: str) -> bool:
def create_access_token(*, data: dict, expires_delta: timedelta = None): def create_access_token(*, data: dict, expires_delta: timedelta = None):
to_encode = data.copy() to_encode = data.copy()
if expires_delta: if expires_delta:
expire = datetime.utcnow() + expires_delta expire = datetime.now(timezone.utc) + expires_delta
else: else:
expire = datetime.utcnow() + timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES) expire = datetime.now(timezone.utc) + timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
to_encode.update({"exp": expire}) to_encode.update({"exp": expire})
encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM) encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
return encoded_jwt return encoded_jwt

View File

@@ -1,5 +1,5 @@
from sqlalchemy import Boolean, Column, Integer, String, DateTime,ForeignKey,Table from sqlalchemy import Boolean, Column, Integer, String, DateTime,ForeignKey,Table
from sqlalchemy.orm import relationship,as_declarative from sqlalchemy.orm import Mapped,relationship,as_declarative,mapped_column
from datetime import datetime from datetime import datetime
from app.db.session import Base from app.db.session import Base
from app.core.security import chacha20Decrypt from app.core.security import chacha20Decrypt
@@ -28,14 +28,14 @@ rolepermission = Table(
class User(Base): class User(Base):
__tablename__ = "user" __tablename__ = "user"
email = Column(String(50), unique=True, index=True, nullable=False) email = mapped_column(String(50), unique=True, index=True, nullable=False)
first_name = Column(String(100)) first_name = mapped_column(String(100))
last_name = Column(String(100)) last_name = mapped_column(String(100))
hashed_password = Column(String(200), nullable=False) hashed_password = mapped_column(String(200), nullable=False)
is_active = Column(Boolean, default=True) is_active = mapped_column(Boolean, default=True)
is_superuser = Column(Boolean, default=False) is_superuser = mapped_column(Boolean, default=False)
createuserid = Column(Integer,ForeignKey("user.id")) createuserid = mapped_column(Integer,ForeignKey("user.id"))
updateuserid = Column(Integer,ForeignKey("user.id")) updateuserid = mapped_column(Integer,ForeignKey("user.id"))
createuser = relationship('User',foreign_keys=[createuserid]) createuser = relationship('User',foreign_keys=[createuserid])
updateuser = relationship('User',foreign_keys=[updateuserid]) updateuser = relationship('User',foreign_keys=[updateuserid])
roles = relationship("Role",secondary=userrole,back_populates="users") roles = relationship("Role",secondary=userrole,back_populates="users")
@@ -44,44 +44,44 @@ class User(Base):
class Role(Base): class Role(Base):
__tablename__ = "role" __tablename__ = "role"
name = Column(String(100)) name = mapped_column(String(100))
description = Column(String(255)) description = mapped_column(String(255))
level = Column(Integer) level = mapped_column(Integer)
users = relationship("User",secondary=userrole,back_populates="roles") users = relationship("User",secondary=userrole,back_populates="roles")
permissions = relationship("Permission",secondary=rolepermission,back_populates="roles") permissions = relationship("Permission",secondary=rolepermission,back_populates="roles")
class Permission(Base): class Permission(Base):
__tablename__ = "permission" __tablename__ = "permission"
menu = Column(String(100)) menu = mapped_column(String(100))
function = Column(String(255)) function = mapped_column(String(255))
privilege = Column(String(100)) privilege = mapped_column(String(100))
roles = relationship("Role",secondary=rolepermission,back_populates="permissions") roles = relationship("Role",secondary=rolepermission,back_populates="permissions")
class App(Base): class App(Base):
__tablename__ = "app" __tablename__ = "app"
domainurl = Column(String(200), nullable=False) domainurl = mapped_column(String(200), nullable=False)
appname = Column(String(200), nullable=False) appname = mapped_column(String(200), nullable=False)
appid = Column(String(100), index=True, nullable=False) appid = mapped_column(String(100), index=True, nullable=False)
version = Column(Integer) version = mapped_column(Integer)
createuserid = Column(Integer,ForeignKey("user.id")) createuserid = mapped_column(Integer,ForeignKey("user.id"))
updateuserid = Column(Integer,ForeignKey("user.id")) updateuserid = mapped_column(Integer,ForeignKey("user.id"))
createuser = relationship('User',foreign_keys=[createuserid]) createuser = relationship('User',foreign_keys=[createuserid])
updateuser = relationship('User',foreign_keys=[updateuserid]) updateuser = relationship('User',foreign_keys=[updateuserid])
class AppVersion(Base): class AppVersion(Base):
__tablename__ = "appversion" __tablename__ = "appversion"
domainurl = Column(String(200), nullable=False) domainurl = mapped_column(String(200), nullable=False)
appname = Column(String(200), nullable=False) appname = mapped_column(String(200), nullable=False)
appid = Column(String(100), index=True, nullable=False) appid = mapped_column(String(100), index=True, nullable=False)
version = Column(Integer) version = mapped_column(Integer)
versionname = Column(String(200), nullable=False) versionname = mapped_column(String(200), nullable=False)
comment = Column(String(200), nullable=False) comment = mapped_column(String(200), nullable=False)
createuserid = Column(Integer,ForeignKey("user.id")) createuserid = mapped_column(Integer,ForeignKey("user.id"))
updateuserid = Column(Integer,ForeignKey("user.id")) updateuserid = mapped_column(Integer,ForeignKey("user.id"))
createuser = relationship('User',foreign_keys=[createuserid]) createuser = relationship('User',foreign_keys=[createuserid])
updateuser = relationship('User',foreign_keys=[updateuserid]) updateuser = relationship('User',foreign_keys=[updateuserid])
@@ -89,82 +89,82 @@ class AppVersion(Base):
class AppSetting(Base): class AppSetting(Base):
__tablename__ = "appsetting" __tablename__ = "appsetting"
appid = Column(String(100), index=True, nullable=False) appid = mapped_column(String(100), index=True, nullable=False)
setting = Column(String(1000)) setting = mapped_column(String(1000))
class Kintone(Base): class Kintone(Base):
__tablename__ = "kintone" __tablename__ = "kintone"
type = Column(Integer, index=True, nullable=False) type = mapped_column(Integer, index=True, nullable=False)
name = Column(String(100), nullable=False) name = mapped_column(String(100), nullable=False)
desc = Column(String) desc = mapped_column(String)
content = Column(String) content = mapped_column(String)
class Action(Base): class Action(Base):
__tablename__ = "action" __tablename__ = "action"
name = Column(String(100), index=True, nullable=False) name = mapped_column(String(100), index=True, nullable=False)
title = Column(String(200)) title = mapped_column(String(200))
subtitle = Column(String(500)) subtitle = mapped_column(String(500))
outputpoints = Column(String) outputpoints = mapped_column(String)
property = Column(String) property = mapped_column(String)
categoryid = Column(Integer,ForeignKey("category.id")) categoryid = mapped_column(Integer,ForeignKey("category.id"))
nosort = Column(Integer) nosort = mapped_column(Integer)
class Flow(Base): class Flow(Base):
__tablename__ = "flow" __tablename__ = "flow"
flowid = Column(String(100), index=True, nullable=False) flowid = mapped_column(String(100), index=True, nullable=False)
appid = Column(String(100), index=True, nullable=False) appid = mapped_column(String(100), index=True, nullable=False)
eventid = Column(String(100), index=True, nullable=False) eventid = mapped_column(String(100), index=True, nullable=False)
domainurl = Column(String(200)) domainurl = mapped_column(String(200))
name = Column(String(200)) name = mapped_column(String(200))
content = Column(String) content = mapped_column(String)
createuserid = Column(Integer,ForeignKey("user.id")) createuserid = mapped_column(Integer,ForeignKey("user.id"))
updateuserid = Column(Integer,ForeignKey("user.id")) updateuserid = mapped_column(Integer,ForeignKey("user.id"))
createuser = relationship('User',foreign_keys=[createuserid]) createuser = relationship('User',foreign_keys=[createuserid])
updateuser = relationship('User',foreign_keys=[updateuserid]) updateuser = relationship('User',foreign_keys=[updateuserid])
class FlowHistory(Base): class FlowHistory(Base):
__tablename__ = "flowhistory" __tablename__ = "flowhistory"
flowid = Column(String(100), index=True, nullable=False) flowid = mapped_column(String(100), index=True, nullable=False)
appid = Column(String(100), index=True, nullable=False) appid = mapped_column(String(100), index=True, nullable=False)
eventid = Column(String(100), index=True, nullable=False) eventid = mapped_column(String(100), index=True, nullable=False)
domainurl = Column(String(200)) domainurl = mapped_column(String(200))
name = Column(String(200)) name = mapped_column(String(200))
content = Column(String) content = mapped_column(String)
version = Column(Integer) version = mapped_column(Integer)
createuserid = Column(Integer,ForeignKey("user.id")) createuserid = mapped_column(Integer,ForeignKey("user.id"))
updateuserid = Column(Integer,ForeignKey("user.id")) updateuserid = mapped_column(Integer,ForeignKey("user.id"))
createuser = relationship('User',foreign_keys=[createuserid]) createuser = relationship('User',foreign_keys=[createuserid])
updateuser = relationship('User',foreign_keys=[updateuserid]) updateuser = relationship('User',foreign_keys=[updateuserid])
class Tenant(Base): class Tenant(Base):
__tablename__ = "tenant" __tablename__ = "tenant"
tenantid = Column(String(100), index=True, nullable=False) tenantid = mapped_column(String(100), index=True, nullable=False)
name = Column(String(200)) name = mapped_column(String(200))
licence = Column(String(200)) licence = mapped_column(String(200))
startdate = Column(DateTime) startdate = mapped_column(DateTime)
enddate = Column(DateTime) enddate = mapped_column(DateTime)
class Domain(Base): class Domain(Base):
__tablename__ = "domain" __tablename__ = "domain"
tenantid = Column(String(100), index=True, nullable=False) tenantid = mapped_column(String(100), index=True, nullable=False)
name = Column(String(100), nullable=False) name = mapped_column(String(100), nullable=False)
url = Column(String(200), nullable=False) url = mapped_column(String(200), nullable=False)
kintoneuser = Column(String(100), nullable=False) kintoneuser = mapped_column(String(100), nullable=False)
kintonepwd = Column(String(100), nullable=False) kintonepwd = mapped_column(String(100), nullable=False)
is_active = Column(Boolean, default=True) is_active = mapped_column(Boolean, default=True)
def decrypt_kintonepwd(self): def decrypt_kintonepwd(self):
decrypted_pwd = chacha20Decrypt(self.kintonepwd) decrypted_pwd = chacha20Decrypt(self.kintonepwd)
return decrypted_pwd return decrypted_pwd
createuserid = Column(Integer,ForeignKey("user.id")) createuserid = mapped_column(Integer,ForeignKey("user.id"))
updateuserid = Column(Integer,ForeignKey("user.id")) updateuserid = mapped_column(Integer,ForeignKey("user.id"))
ownerid = Column(Integer,ForeignKey("user.id")) ownerid = mapped_column(Integer,ForeignKey("user.id"))
createuser = relationship('User',foreign_keys=[createuserid]) createuser = relationship('User',foreign_keys=[createuserid])
updateuser = relationship('User',foreign_keys=[updateuserid]) updateuser = relationship('User',foreign_keys=[updateuserid])
owner = relationship('User',foreign_keys=[ownerid]) owner = relationship('User',foreign_keys=[ownerid])
@@ -173,11 +173,11 @@ class Domain(Base):
class UserDomain(Base): class UserDomain(Base):
__tablename__ = "userdomain" __tablename__ = "userdomain"
userid = Column(Integer,ForeignKey("user.id")) userid = mapped_column(Integer,ForeignKey("user.id"))
domainid = Column(Integer,ForeignKey("domain.id")) domainid = mapped_column(Integer,ForeignKey("domain.id"))
is_default = Column(Boolean, default=False) is_default = mapped_column(Boolean, default=False)
createuserid = Column(Integer,ForeignKey("user.id")) createuserid = mapped_column(Integer,ForeignKey("user.id"))
updateuserid = Column(Integer,ForeignKey("user.id")) updateuserid = mapped_column(Integer,ForeignKey("user.id"))
domain = relationship("Domain") domain = relationship("Domain")
user = relationship("User",foreign_keys=[userid]) user = relationship("User",foreign_keys=[userid])
createuser = relationship('User',foreign_keys=[createuserid]) createuser = relationship('User',foreign_keys=[createuserid])
@@ -186,51 +186,51 @@ class UserDomain(Base):
class Event(Base): class Event(Base):
__tablename__ = "event" __tablename__ = "event"
category = Column(String(100), nullable=False) category = mapped_column(String(100), nullable=False)
type = Column(String(100), nullable=False) type = mapped_column(String(100), nullable=False)
eventid= Column(String(100), nullable=False) eventid= mapped_column(String(100), nullable=False)
function = Column(String(500), nullable=False) function = mapped_column(String(500), nullable=False)
mobile = Column(Boolean, default=False) mobile = mapped_column(Boolean, default=False)
eventgroup = Column(Boolean, default=False) eventgroup = mapped_column(Boolean, default=False)
class EventAction(Base): class EventAction(Base):
__tablename__ = "eventaction" __tablename__ = "eventaction"
eventid = Column(String(100),ForeignKey("event.eventid")) eventid = mapped_column(String(100),ForeignKey("event.eventid"))
actionid = Column(Integer,ForeignKey("action.id")) actionid = mapped_column(Integer,ForeignKey("action.id"))
class ErrorLog(Base): class ErrorLog(Base):
__tablename__ = "errorlog" __tablename__ = "errorlog"
title = Column(String(50)) title = mapped_column(String(50))
location = Column(String(500)) location = mapped_column(String(500))
content = Column(String(5000)) content = mapped_column(String(5000))
class OperationLog(Base): class OperationLog(Base):
__tablename__ = "operationlog" __tablename__ = "operationlog"
tenantid = Column(String(100)) tenantid = mapped_column(String(100))
domainurl = Column(String(200)) domainurl = mapped_column(String(200))
userid = Column(Integer,ForeignKey("user.id")) userid = mapped_column(Integer,ForeignKey("user.id"))
operation = Column(String(200)) operation = mapped_column(String(200))
function = Column(String(200)) function = mapped_column(String(200))
detail = Column(String(200)) detail = mapped_column(String(200))
user = relationship('User') user = relationship('User')
class KintoneFormat(Base): class KintoneFormat(Base):
__tablename__ = "kintoneformat" __tablename__ = "kintoneformat"
name = Column(String(50)) name = mapped_column(String(50))
startrow =Column(Integer) startrow =mapped_column(Integer)
startcolumn =Column(Integer) startmapped_column =mapped_column(Integer)
typecolumn =Column(Integer) typemapped_column =mapped_column(Integer)
codecolumn =Column(Integer) codemapped_column =mapped_column(Integer)
field = Column(String(5000)) field = mapped_column(String(5000))
trueformat = Column(String(10)) trueformat = mapped_column(String(10))
class Category(Base): class Category(Base):
__tablename__ = "category" __tablename__ = "category"
categoryname = Column(String(20)) categoryname = mapped_column(String(20))
nosort = Column(Integer) nosort = mapped_column(Integer)