[TC-221]: init template-backend-service (#1)
https://eva.avroid.tech/desk/cards?obj=Task:TC-221 Начальная версия сервиса-шаблона Co-authored-by: Nadezhda <nadezhda.lavrentieva@avroid.team> Reviewed-on: https://git.avroid.tech/Templates/template-backend-service/pulls/1 Reviewed-by: Victor Stratov <victor.stratov@avroid.tech>
This commit is contained in:
0
src/database/__init__.py
Normal file
0
src/database/__init__.py
Normal file
17
src/database/postgresql.py
Normal file
17
src/database/postgresql.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from sqlalchemy import MetaData, create_engine
|
||||
from sqlalchemy.orm import Session, declarative_base, sessionmaker
|
||||
|
||||
from src.settings import WebAppSettings
|
||||
|
||||
|
||||
class PGConnector:
|
||||
def __init__(self, settings: WebAppSettings) -> None:
|
||||
self.pg_engine = create_engine(
|
||||
f"postgresql://{settings.postgres_user}:{settings.postgres_password}@{settings.postgres_host}:"
|
||||
f"{settings.postgres_port}/{settings.postgres_db}",
|
||||
)
|
||||
self.pg_session = sessionmaker(self.pg_engine, class_=Session)
|
||||
|
||||
|
||||
PGBase = declarative_base()
|
||||
pg_metadata = MetaData()
|
||||
23
src/database/scylla.py
Normal file
23
src/database/scylla.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from cassandra.auth import PlainTextAuthProvider
|
||||
from cassandra.cluster import Cluster
|
||||
from cassandra.cqlengine import connection
|
||||
|
||||
from src.settings import WebAppSettings
|
||||
|
||||
|
||||
class ScyllaConnector:
|
||||
def __init__(self, settings: WebAppSettings) -> None:
|
||||
self.auth_provider = PlainTextAuthProvider(
|
||||
username=settings.scylladb_user,
|
||||
password=settings.scylladb_password,
|
||||
)
|
||||
|
||||
self.cluster = Cluster(
|
||||
[settings.scylladb_host],
|
||||
auth_provider=self.auth_provider,
|
||||
port=settings.scylladb_port,
|
||||
)
|
||||
|
||||
self.scylladb_session = self.cluster.connect(keyspace=settings.scylladb_keyspace)
|
||||
connection.register_connection("main_cluster", session=self.scylladb_session)
|
||||
connection.set_default_connection("main_cluster")
|
||||
Reference in New Issue
Block a user