Skip to content

KingAndJoker/etr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

603 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

etr

Project handler Codeforces API and returns list of submissions some users.

Run

commant prompt:

uvicorn etr:app

Docker run

docker build -t etr:latest .
docker run --name etr -d -p 8000:5000 --rm etr:latest

Database

Database is MySQL.

docker run --name etr_db -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --restart unless-stopped mysql:8.1.0

Url to database:

mysql+mysqlconnector://root:1@localhost:3306

Example .env

URL_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

Example alembic.ini

...
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.

Run migrations

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors