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 MODE="DEVELOPMENT"
RUN mkdir -p /app
COPY requirements.txt /app
WORKDIR /app
RUN pip3 install setuptools
RUN pip3 install fastapi
RUN pip3 install sqlalchemy
RUN pip3 install -r requirements.txt
EXPOSE 8000
+4
View File
@@ -4,12 +4,16 @@ ENV PYTHONFAULTHANDLER=1
ENV PYTHONUNBUFFERED=1
ENV MODE="PRODUCTION"
RUN mkdir -p /app
COPY requirements.txt /app
WORKDIR /app
RUN pip3 install setuptools
RUN pip3 install -r requirements.txt
EXPOSE 8001
+3 -3
View File
@@ -1,7 +1,7 @@
from sqlalchemy import (Column, Integer,
DECIMAL, Text,
VARCHAR, TIMESTAMP, Date, INTEGER)
from datetime import datetime, timezone
DECIMAL, TEXT,
VARCHAR, TIMESTAMP, DATE, INTEGER)
from datetime import datetime
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 declarative_base
from config import load_config
ApplicationConfig = load_config()
url = URL.create(
drivername="postgresql",
username="postgres",
password="password",
host="192.168.1.204",
database="eamco",
port=5432
username=ApplicationConfig.POSTGRES_USERNAME,
password=ApplicationConfig.POSTGRES_PW,
host=ApplicationConfig.POSTGRES_SERVER,
database=ApplicationConfig.POSTGRES_DBNAME00,
port=ApplicationConfig.POSTGRES_PORT
)
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}