Project handler Codeforces API and returns list of submissions some users.
commant prompt:
uvicorn etr:appdocker build -t etr:latest .
docker run --name etr -d -p 8000:5000 --rm etr:latestDatabase is MySQL.
docker run --name etr_db -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --restart unless-stopped mysql:8.1.0Url to database:
mysql+mysqlconnector://root:1@localhost:3306URL_PREFIX=/etr
URL_DATABASE=mysql+mysqlconnector://root:password@localhost:3306
DATABASE_ECHO=true
CODEFORCES_API_KEY=0123456789abcdef0123456789abcdef01234567
CODEFORCES_API_SECRET=0123456789abcdef0123456789abcdef01234567
SQL_PASSWORD=12345
DEBUG=true...
sqlalchemy.url = driver://user:pass@localhost/dbname
...Alembic.ini file generate automatically. But you don`t forget to set sqlalchemy.url - the url for the database.
Before performing the migration you must run the command:
alembic init "folder"In alembic/env.py you have to write the code:
...
from etr.models.base import Base
from etr.models.problem import ProblemOrm, problems_tags, TagOrm
from etr.models.user import UserOrm
from etr.models.team import TeamOrm, teams_users
from etr.models.submission import SubmissionOrm
from etr.models.contest import ContestOrm
from etr.models.recommendation import RecommendationOrm
target_metadata = Base.metadata
...This code sets the metadata for alembic.
After you do something in the database models you have to perform the migration.
alembic revision --autogenerate -m "some message..."
alembic upgrade head