From 1f37a589cc0938a245762b8f6ff91ee3853ddc4a Mon Sep 17 00:00:00 2001 From: H4CK3R-01 Date: Mon, 2 May 2022 17:34:16 +0200 Subject: [PATCH] Fixed database models --- .gitignore | 2 +- requirements.txt | 3 ++- .env.example => source/.env.example | 4 +++- source/bot.py | 2 +- source/db.py | 17 ++++++++++------- 5 files changed, 17 insertions(+), 11 deletions(-) rename .env.example => source/.env.example (78%) diff --git a/.gitignore b/.gitignore index ec41a00..550537b 100644 --- a/.gitignore +++ b/.gitignore @@ -105,7 +105,7 @@ celerybeat.pid *.sage.py # Environments -.env +source/.env .venv env/ venv/ diff --git a/requirements.txt b/requirements.txt index e55bf96..dde3cfb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ pyTelegramBotAPI~=4.5.0 python-dotenv~=0.20.0 APScheduler~=3.9.1 -SQLAlchemy~=1.4.36 \ No newline at end of file +SQLAlchemy~=1.4.36 +mysqlclient~=1.4.6 \ No newline at end of file diff --git a/.env.example b/source/.env.example similarity index 78% rename from .env.example rename to source/.env.example index 67e3e61..e44593d 100644 --- a/.env.example +++ b/source/.env.example @@ -1,3 +1,5 @@ -# Bot API +# Bot BOT_API_KEY= + +# Database DATABASE_CONNECTION=mysql://scott:tiger@localhost/foo' \ No newline at end of file diff --git a/source/bot.py b/source/bot.py index 596905f..1f52b5f 100644 --- a/source/bot.py +++ b/source/bot.py @@ -17,7 +17,7 @@ import telebot from dotenv import load_dotenv from telebot import types -from source.db import User, session +from db import User, session load_dotenv(dotenv_path='.env') # load environment variables diff --git a/source/db.py b/source/db.py index 3e466ed..3518c35 100644 --- a/source/db.py +++ b/source/db.py @@ -6,11 +6,14 @@ __version__ = "1.0.0" import os +from dotenv import load_dotenv from sqlalchemy import Column, Integer, String, ForeignKey, create_engine, Boolean, DateTime, Float from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker -engine = create_engine(os.getenv("DATABASE_CONNECTION"), echo=True) +load_dotenv() + +engine = create_engine(os.getenv("DATABASE_CONNECTION")) Base = declarative_base() @@ -18,7 +21,7 @@ Base = declarative_base() class User(Base): __tablename__ = 'user' telegram_id = Column(Integer, primary_key=True) - username = Column(String) + username = Column(String(50)) admin = Column(Boolean) def __repr__(self): @@ -29,7 +32,7 @@ class Score(Base): __tablename__ = 'score' telegram_id = Column(Integer, ForeignKey('user.telegram_id'), primary_key=True) date = Column(DateTime, primary_key=True) - product_id = Column(String, ForeignKey('product.product_id')) + product_id = Column(String(50), ForeignKey('product.product_id')) guess = Column(Float) score = Column(Integer) @@ -39,11 +42,11 @@ class Score(Base): class Product(Base): __tablename__ = 'product' - product_id = Column(String, primary_key=True) + product_id = Column(String(50), primary_key=True) price = Column(Float) - image_link = Column(String) - title = Column(String) - description = Column(String) + image_link = Column(String(5000)) + title = Column(String(5000)) + description = Column(String(5000)) date = Column(DateTime) def __repr__(self):