Skip to content
Snippets Groups Projects
Commit ad8384a4 authored by Nicolas Schmid's avatar Nicolas Schmid
Browse files

feat: improve scripts to create database and debug

parent ba06c243
No related branches found
No related tags found
3 merge requests!34deploy v1.0 to bedretto hydws,!33deploy to bedretto environment,!32Feature/datamodel
Pipeline #2840 passed
......@@ -46,4 +46,5 @@ COPY --chown=python:python . .
EXPOSE 8000
CMD ["gunicorn", "-k", "uvicorn.workers.UvicornWorker", "-c", "python:config.gunicorn", "hydws.main:app"]
# CMD ["gunicorn", "-k", "uvicorn.workers.UvicornWorker", "-c", "python:config.gunicorn", "hydws.main:app"]
CMD ["uvicorn", "hydws.main:app", "--port", "8000", "--workers", "1", "--timeout-keep-alive", "300", "--host", "0.0.0.0"]
......@@ -2,13 +2,14 @@
import multiprocessing
import os
from distutils.util import strtobool
bind = f"0.0.0.0:{os.getenv('PORT', '8000')}"
accesslog = "-"
access_log_format = "%(h)s %(l)s %(u)s %(t)s '%(r)s' %(s)s %(b)s '%(f)s' '%(a)s' in %(D)sµs" # noqa: E501
timeout = "600"
workers = int(os.getenv("WEB_CONCURRENCY", multiprocessing.cpu_count() * 2))
threads = int(os.getenv("PYTHON_MAX_THREADS", 1))
......
#!/bin/bash
set -e
set -a
. .env
set +a
psql -d $DB_NAME -U $DB_USER --host $POSTGRES_HOST -f $(pwd)/db/partition.sql
psql -d $DB_NAME -U $DB_USER --host $POSTGRES_HOST -c "CREATE OR REPLACE TRIGGER partition_daily_function
BEFORE INSERT
ON hydraulicsample
FOR EACH ROW
WHEN (pg_trigger_depth() < 1)
EXECUTE FUNCTION partition_daily_function($DB_USER);"
\ No newline at end of file
-- CREATE TABLE hydraulicsample_default PARTITION OF hydraulicsample DEFAULT;
CREATE TABLE hydraulicsample_default PARTITION OF hydraulicsample DEFAULT;
CREATE OR REPLACE FUNCTION partition_daily_function()
RETURNS TRIGGER AS $$
......@@ -21,6 +21,7 @@ THEN
RAISE NOTICE 'A partition has been created';
BEGIN
EXECUTE format(E'CREATE TABLE %I (LIKE hydraulicsample INCLUDING INDEXES)', partition_name);
EXECUTE format(E'ALTER TABLE %I OWNER TO %s', partition_name, TG_ARGV[0]);
EXECUTE format(E'NOTIFY hydraulicsample, %L', partition_date);
EXCEPTION
WHEN duplicate_table THEN
......@@ -32,10 +33,3 @@ RETURN NULL;
END;
$$
LANGUAGE plpgsql;
CREATE OR REPLACE TRIGGER partition_daily_function
BEFORE INSERT
ON hydraulicsample
FOR EACH ROW
WHEN (pg_trigger_depth() < 1)
EXECUTE FUNCTION partition_daily_function();
import psycopg2
import asyncio
import enum
import functools
import uuid
from datetime import datetime, timedelta
import psycopg2
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT
from sqlalchemy import (Boolean, Column, DateTime, Float, Integer, String,
create_engine)
......
# import logging
from fastapi import FastAPI
# from fastapi.logger import logger as fastapi_logger
from fastapi.middleware.cors import CORSMiddleware
from hydws.datamodel.base import ORMBase, engine
from hydws.datamodel.base import ORMBase, engine
from hydws.routers.v1 import boreholes
# gunicorn_error_logger = logging.getLogger("gunicorn.error")
# gunicorn_logger = logging.getLogger("gunicorn")
# uvicorn_access_logger = logging.getLogger("uvicorn.access")
# uvicorn_access_logger.handlers = gunicorn_error_logger.handlers
# fastapi_logger.handlers = gunicorn_error_logger.handlers
# if __name__ != "__main__":
# fastapi_logger.setLevel(gunicorn_logger.level)
# else:
# fastapi_logger.setLevel(logging.DEBUG)
ORMBase.metadata.create_all(bind=engine)
......
......@@ -3,6 +3,7 @@ autopep8>=1.6.0
fastapi[all]>=0.92.0
flake8>=4.0.1
gunicorn>=20.1.0
orjson>=3.9.0
pandas>=2.0.0rc1
psycopg2>=2.9.3
pytest>=7.0.1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment