dynamic database

This commit is contained in:
2024-10-07 22:58:06 -04:00
parent 47475c4f34
commit a8c12f6edf
7 changed files with 81 additions and 8 deletions
+6
View File
@@ -4,14 +4,20 @@ ENV PYTHONFAULTHANDLER=1
ENV PYTHONUNBUFFERED=1 ENV PYTHONUNBUFFERED=1
ENV MODE="DEVELOPMENT"
RUN mkdir -p /app RUN mkdir -p /app
COPY requirements.txt /app COPY requirements.txt /app
WORKDIR /app WORKDIR /app
RUN pip3 install setuptools RUN pip3 install setuptools
RUN pip3 install fastapi RUN pip3 install fastapi
RUN pip3 install sqlalchemy RUN pip3 install sqlalchemy
RUN pip3 install -r requirements.txt RUN pip3 install -r requirements.txt
EXPOSE 8000 EXPOSE 8000
+4
View File
@@ -4,12 +4,16 @@ ENV PYTHONFAULTHANDLER=1
ENV PYTHONUNBUFFERED=1 ENV PYTHONUNBUFFERED=1
ENV MODE="PRODUCTION"
RUN mkdir -p /app RUN mkdir -p /app
COPY requirements.txt /app COPY requirements.txt /app
WORKDIR /app WORKDIR /app
RUN pip3 install setuptools RUN pip3 install setuptools
RUN pip3 install -r requirements.txt RUN pip3 install -r requirements.txt
EXPOSE 8001 EXPOSE 8001
+3 -3
View File
@@ -1,7 +1,7 @@
from sqlalchemy import (Column, Integer, from sqlalchemy import (Column, Integer,
DECIMAL, Text, DECIMAL, TEXT,
VARCHAR, TIMESTAMP, Date, INTEGER) VARCHAR, TIMESTAMP, DATE, INTEGER)
from datetime import datetime, timezone from datetime import datetime
from database import Base from database import Base
+20
View File
@@ -0,0 +1,20 @@
import os
def load_config(mode=os.environ.get('MODE')):
try:
print(f"mode is {mode}")
if mode == 'PRODUCTION':
from settings_prod import ApplicationConfig
return ApplicationConfig
elif mode == 'DEVELOPMENT':
from settings_local import ApplicationConfig
return ApplicationConfig
else:
pass
except ImportError:
from settings_local import ApplicationConfig
return ApplicationConfig
+12 -5
View File
@@ -3,13 +3,20 @@ from sqlalchemy.engine import URL
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm import declarative_base from sqlalchemy.orm import declarative_base
from config import load_config
ApplicationConfig = load_config()
url = URL.create( url = URL.create(
drivername="postgresql", drivername="postgresql",
username="postgres", username=ApplicationConfig.POSTGRES_USERNAME,
password="password", password=ApplicationConfig.POSTGRES_PW,
host="192.168.1.204", host=ApplicationConfig.POSTGRES_SERVER,
database="eamco", database=ApplicationConfig.POSTGRES_DBNAME00,
port=5432 port=ApplicationConfig.POSTGRES_PORT
) )
engine = create_engine(url) engine = create_engine(url)
+19
View File
@@ -0,0 +1,19 @@
class ApplicationConfig:
"""
Basic Configuration for a generic User
"""
CURRENT_SETTINGS = 'LOCAL'
# databases info
POSTGRES_USERNAME = 'postgres'
POSTGRES_PW = 'password'
POSTGRES_SERVER = '192.168.1.204'
POSTGRES_PORT = '5432'
POSTGRES_DBNAME00 = 'eamco'
SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://{}:{}@{}/{}".format(POSTGRES_USERNAME,
POSTGRES_PW,
POSTGRES_SERVER,
POSTGRES_DBNAME00
)
+17
View File
@@ -0,0 +1,17 @@
class ApplicationConfig:
"""
Basic Configuration for a generic User
"""
CURRENT_SETTINGS = 'LOCAL'
# databases info
POSTGRES_USERNAME = 'postgres'
POSTGRES_PW = 'password'
POSTGRES_SERVER = '192.168.1.204'
POSTGRES_PORT = '5432'
POSTGRES_DBNAME00 = 'auburnoil'
SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://{}:{}@{}/{}".format(POSTGRES_USERNAME,
POSTGRES_PW,
POSTGRES_SERVER,
POSTGRES_DBNAME00
)
SQLALCHEMY_BINDS = {'eamco': SQLALCHEMY_DATABASE_URI}