diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a9c51fef8bf40beb3929be203d12f25cabf70437..6c9f5319b780b6c95dfa14c64aeb1c97b5f47117 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,5 +9,6 @@ docker-build-master: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build --pull -t "$CI_REGISTRY_IMAGE":test . - - docker push "$CI_REGISTRY_IMAGE":test + - cp $ENV_FILE .env + - docker build --pull -t "$CI_REGISTRY_IMAGE":prod . + - docker push "$CI_REGISTRY_IMAGE":prod diff --git a/python_startup/.gitkeep b/python_startup/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/python_startup/01_load_db.py b/python_startup/01_load_db.py new file mode 100644 index 0000000000000000000000000000000000000000..e30e171113b983781ffdc0dde64f5936f46c9472 --- /dev/null +++ b/python_startup/01_load_db.py @@ -0,0 +1,36 @@ +import os +from dotenv import load_dotenv +import sqlalchemy +import pandas as pd +from urllib.parse import quote_plus + +load_dotenv("/usr/src/app/.env") + +class Database: + def __init__(self, db_name): + self.conn = db_connect(db_name) + + def __getattr__(self, table_name): + return pd.read_sql_table(table_name, self.conn) + + def list_tables(self): + inspector = sqlalchemy.inspect(self.conn) + table_names = inspector.get_table_names() + return table_names + +def db_connect(db_name): + hostname=os.getenv("DB_HOST") + user=os.getenv("DB_USER") + password=quote_plus(os.getenv("DB_PASSWORD")) + conn = sqlalchemy.create_engine(f'postgresql+psycopg2://{user}:{password}@{hostname}/{db_name}') + return conn + +def get_table(db_name, table_name): + conn = db_connect(db_name) + dat = pd.read_sql_table(table_name, conn) + return dat + +def get_all_tables(db_name): + db_obj = Database(db_name) + return db_obj +