Initial database connection and initialization.

This commit is contained in:
Alexander Huddleston 2020-03-08 00:51:02 -06:00
parent 4f4b87e6ca
commit 344ad4e47b
6 changed files with 80 additions and 18 deletions

2
.gitignore vendored
View file

@ -3,3 +3,5 @@
Pipfile.lock
**/.vscode/
**/.idea/
pg_data/.pgdb_pass
pg_data/*/

View file

@ -20,6 +20,8 @@ WORKDIR /usr/src/uwume
RUN chown -R uwume:uwume /usr/src/uwume
USER uwume
COPY pg_data/.pgdb_pass /var/lib/postgresql/data/pg_data/.pgdb_pass
# Copy Pipfile from local and install packages
COPY Pipfile Pipfile
RUN pipenv install

View file

@ -1,5 +1,5 @@
---
version: '3'
version: "3"
services:
uwume:
build:
@ -8,12 +8,42 @@ services:
image: uwume:latest
user: uwume
container_name: uwu_me
environment:
- FLASK_APP=/usr/src/uwume/app
- FLASK_ENV=development
- FLASK_RUN_HOST=0.0.0.0
- FLASK_RUN_PORT=4444
volumes:
- ./uwume:/usr/src/uwume/app
networks:
- net
ports:
- 4444:4444
links:
- postgres
volumes:
- ./uwume:/usr/src/uwume/app
environment:
FLASK_APP: /usr/src/uwume/app
FLASK_ENV: development
FLASK_RUN_HOST: 0.0.0.0
FLASK_RUN_PORT: 4444
POSTGRES_PASSWORD_FILE: /var/lib/postgresql/data/pg_data/.pgdb_pass
POSTGRES_DB: uwume_prod
POSTGRES_USER: uwume
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
PGDATA: /var/lib/postgresql/data/pg_data/pgdb
restart: unless-stopped
postgres:
image: postgres:alpine
networks:
- net
ports:
- 5432:5432
volumes:
- ./pg_data:/var/lib/postgresql/data/pg_data/
environment:
POSTGRES_PASSWORD_FILE: /var/lib/postgresql/data/pg_data/.pgdb_pass
POSTGRES_DB: uwume_prod
POSTGRES_USER: uwume
POSTGRES_HOST: localhost
POSTGRES_PORT: 5432
PGDATA: /var/lib/postgresql/data/pg_data/pgdb
networks:
net:
volumes:
pg_data:

0
pg_data/.gitkeep Normal file
View file

View file

@ -1,7 +1,14 @@
from flask import Flask
from os import urandom
from os import environ
try:
import uwume.lib.databaseMethods
except:
from .lib.databaseMethods import initialize_database
app = Flask(__name__)
app.secret_key = urandom(12).hex()
initialize_database()
from . import uwume

View file

@ -0,0 +1,21 @@
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Boolean
from os import environ
pg_pass_file = open(environ['POSTGRES_PASSWORD_FILE'])
pg_pass = pg_pass_file.readline().strip('\n')
engine = create_engine(
f"postgresql+psycopg2://{environ['POSTGRES_USER']}:{pg_pass}@{environ['POSTGRES_HOST']}:{environ['POSTGRES_PORT']}/{environ['POSTGRES_DB']}")
def initialize_database():
conn = engine.connect()
md = MetaData()
users = Table('users', md,
Column('id', Integer()),
Column('name', String(255)),
Column('pass', String(255)),
Column('count', Integer()))
try:
md.create_all(engine)
except Exception as e:
print(f'{e}')