mirror of
				https://gitea.publichub.eu/oscar.krause/fastapi-dls.git
				synced 2025-11-04 09:36:10 +00:00 
			
		
		
		
	implemented db_init
This commit is contained in:
		@@ -22,7 +22,7 @@ from sqlalchemy.orm import sessionmaker
 | 
			
		||||
from Crypto.PublicKey import RSA
 | 
			
		||||
from Crypto.PublicKey.RSA import RsaKey
 | 
			
		||||
 | 
			
		||||
from orm import Origin, Lease
 | 
			
		||||
from orm import Origin, Lease, init as db_init
 | 
			
		||||
 | 
			
		||||
logger = logging.getLogger()
 | 
			
		||||
load_dotenv('../version.env')
 | 
			
		||||
@@ -48,6 +48,7 @@ __details = dict(
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
app, db = FastAPI(**__details), create_engine(url=str(getenv('DATABASE', 'sqlite:///db.sqlite')))
 | 
			
		||||
db_init(db)
 | 
			
		||||
 | 
			
		||||
TOKEN_EXPIRE_DELTA = relativedelta(hours=1)  # days=1
 | 
			
		||||
LEASE_EXPIRE_DELTA = relativedelta(days=int(getenv('LEASE_EXPIRE_DAYS', 90)))
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								app/orm.py
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								app/orm.py
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
import datetime
 | 
			
		||||
 | 
			
		||||
from sqlalchemy import Column, VARCHAR, CHAR, ForeignKey, DATETIME, UniqueConstraint, update, and_, delete
 | 
			
		||||
from sqlalchemy import Column, VARCHAR, CHAR, ForeignKey, DATETIME, UniqueConstraint, update, and_, delete, inspect
 | 
			
		||||
from sqlalchemy.ext.declarative import declarative_base
 | 
			
		||||
from sqlalchemy.future import Engine
 | 
			
		||||
from sqlalchemy.orm import sessionmaker
 | 
			
		||||
@@ -102,3 +102,13 @@ class Lease(Base):
 | 
			
		||||
        deletions = session.query(Lease).delete(Lease.origin_ref == origin_ref)
 | 
			
		||||
        session.close()
 | 
			
		||||
        return deletions
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def init(engine: Engine):
 | 
			
		||||
    tables = [Origin, Lease]
 | 
			
		||||
    db = inspect(engine)
 | 
			
		||||
    session = sessionmaker(bind=engine)()
 | 
			
		||||
    for table in tables:
 | 
			
		||||
        if not db.dialect.has_table(engine.connect(), table.__tablename__):
 | 
			
		||||
            session.execute(str(table.create_statement(engine)))
 | 
			
		||||
    session.close()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user