From 8c1eb7dee8241b53897edc5701d265f3457f822f Mon Sep 17 00:00:00 2001 From: bacalhau Date: Tue, 3 Mar 2026 18:44:17 +0000 Subject: [PATCH] changed from postgres to mysql (mariaDB) --- docker-compose.yml | 14 +++++++------- plan.md | 2 +- requirements.txt | 4 ++++ src/main.py | 38 ++++++++++++++++++++------------------ 4 files changed, 32 insertions(+), 26 deletions(-) create mode 100644 requirements.txt diff --git a/docker-compose.yml b/docker-compose.yml index dd21f30..7885b4a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,15 +1,15 @@ -version: "3.9" services: db: - image: postgres + image: mariadb:latest container_name: lovedb restart: always environment: - POSTGRES_USER: love - POSTGRES_PASSWORD: love - POSTGRES_DB: lovedb + MARIADB_ROOT_PASSWORD: love + MARIADB_DATABASE: lovedb + MARIADB_USER: love + MARIADB_PASSWORD: love ports: - - "5432:5432" + - "3309:3306" volumes: - - ./data:/var/lib/postgresql + - ./data:/var/lib/mysql diff --git a/plan.md b/plan.md index 4031c76..1b47670 100644 --- a/plan.md +++ b/plan.md @@ -87,7 +87,7 @@ - **Software used**: - Flask (backend framework) - - Postgres SQL (Database) + - MySQL (Database) - SQLAlchemy (ORM) - python-gnupg (PGP validation) - Flask-WTF (Forms validation) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..d185f9d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +Flask +Flask-SQLAlchemy +SQLAlchemy +PyMySQL diff --git a/src/main.py b/src/main.py index 8c1e763..82f6433 100644 --- a/src/main.py +++ b/src/main.py @@ -1,40 +1,41 @@ from flask import Flask, render_template from flask_sqlalchemy import SQLAlchemy -from sqlalchemy import Enum -from sqlalchemy.dialects.postgresql import ARRAY +from datetime import date app = Flask(__name__) -app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://love:love@localhost/lovedb' +app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://love:love@localhost:3309/lovedb' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) -class SexEnum: - male = "male" - female = "female" - class User(db.Model): id = db.Column(db.Integer, primary_key=True) - username = db.Column(db.String(128), unique=True, nullable=False) - password = db.Column(db.String(128), unique=True, nullable=False) - firstname = db.Column(db.String(128), unique=False, nullable=False) - lastname = db.Column(db.String(128), unique=False, nullable=False) - sex = db.Column(Enum('male', 'female', name="sex_enum"), nullable=False) + username = db.Column(db.String(128), unique=True, nullable=False) + password = db.Column(db.String(128), nullable=False) + + firstname = db.Column(db.String(128), nullable=False) + lastname = db.Column(db.String(128), nullable=False) + + sex = db.Column(db.Enum('male', 'female'), nullable=False) date_of_birth = db.Column(db.Date, nullable=False) + profile_picture = db.Column(db.String(200), nullable=False) - pictures = db.Column(ARRAY(db.String), nullable=True) - country = db.Column(db.String(128), unique=False, nullable=False) - city = db.Column(db.String(128), unique=False, nullable=True) + + pictures = db.Column(db.JSON, nullable=True) + + country = db.Column(db.String(128), nullable=False) + city = db.Column(db.String(128), nullable=True) height = db.Column(db.Float, nullable=True) weight = db.Column(db.Integer, nullable=True) - race = db.Column(db.String(20), unique=False, nullable=True) + race = db.Column(db.String(20), nullable=True) prefered_age_range = db.Column(db.String(20), nullable=True) - likes = db.Column(ARRAY(db.String), nullable=True) - dislikes = db.Column(ARRAY(db.String), nullable=True) + + likes = db.Column(db.JSON, nullable=True) + dislikes = db.Column(db.JSON, nullable=True) xmpp = db.Column(db.String(128), unique=True, nullable=False) email = db.Column(db.String(128), unique=True, nullable=True) @@ -46,6 +47,7 @@ class User(db.Model): def home(): return render_template("index.html") + if __name__ == "__main__": with app.app_context(): db.create_all()