From baab6157373032c59abb0b24f1a55eca96c70ad9 Mon Sep 17 00:00:00 2001 From: codEnjoyer Date: Thu, 2 Nov 2023 17:21:50 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D1=82=20=D0=BC=D0=B8=D0=B3=D1=80=D0=B0=D1=86=D0=B8=D0=B8?= =?UTF-8?q?,=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D1=8E=D1=89=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D1=8B=D0=B5=20=D1=82=D0=B0?= =?UTF-8?q?=D0=B1=D0=BB=D0=B8=D1=86=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/migrations/env.py | 15 +++- ...21\202\320\265\320\273\320\265\320\271.py" | 61 ++++++++++++++++ ...20\264\320\260\320\275\320\270\320\271.py" | 69 +++++++++++++++++++ 3 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 "backend/migrations/versions/2023_11_02_1707-ea5f600c8967_\320\264\320\276\320\261\320\260\320\262\320\273\321\217\320\265\321\202_\321\202\320\260\320\261\320\273\320\270\321\206\321\213_\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271.py" create mode 100644 "backend/migrations/versions/2023_11_02_1709-6e79091c3fb1_\320\264\320\276\320\261\320\260\320\262\320\273\321\217\320\265\321\202_\320\276\321\201\320\275\320\276\320\262\321\203_\320\264\320\273\321\217_\320\267\320\260\320\264\320\260\320\275\320\270\320\271.py" diff --git a/backend/migrations/env.py b/backend/migrations/env.py index 97b378d..a5ca94c 100644 --- a/backend/migrations/env.py +++ b/backend/migrations/env.py @@ -29,8 +29,21 @@ # from myapp import mymodel # target_metadata = mymodel.Base.metadata +from game.map.models import Map +from game.modules.models import Module +from game.levels.models import Level +from game.units.tasks.models import Task +from game.units.theory.models import Theory, TheoryVideo + +from users.models import User +from users.tutors.models import Tutor +from users.employees.models import Employee + +from database import BaseModel + + # TODO: Добавить metadata из моделей -target_metadata = None +target_metadata = BaseModel.metadata # other values from the config, defined by the needs of env.py, diff --git "a/backend/migrations/versions/2023_11_02_1707-ea5f600c8967_\320\264\320\276\320\261\320\260\320\262\320\273\321\217\320\265\321\202_\321\202\320\260\320\261\320\273\320\270\321\206\321\213_\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271.py" "b/backend/migrations/versions/2023_11_02_1707-ea5f600c8967_\320\264\320\276\320\261\320\260\320\262\320\273\321\217\320\265\321\202_\321\202\320\260\320\261\320\273\320\270\321\206\321\213_\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271.py" new file mode 100644 index 0000000..cd26380 --- /dev/null +++ "b/backend/migrations/versions/2023_11_02_1707-ea5f600c8967_\320\264\320\276\320\261\320\260\320\262\320\273\321\217\320\265\321\202_\321\202\320\260\320\261\320\273\320\270\321\206\321\213_\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271.py" @@ -0,0 +1,61 @@ +"""Добавляет таблицы пользователей + +Revision ID: ea5f600c8967 +Revises: +Create Date: 2023-11-02 17:07:33.234938 + +""" +from typing import Sequence, Union + +import fastapi_users_db_sqlalchemy +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = 'ea5f600c8967' +down_revision: Union[str, None] = None +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('employees', + sa.Column('id', sa.UUID(), nullable=False), + sa.Column('name', sa.String(length=255), nullable=False), + sa.Column('last_name', sa.String(length=255), nullable=False), + sa.Column('email', sa.String(length=255), nullable=False), + sa.Column('hired_at', sa.Date(), server_default=sa.text('CURRENT_DATE'), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('email') + ) + op.create_table('tutors', + sa.Column('id', sa.UUID(), nullable=False), + sa.Column('name', sa.String(length=255), nullable=False), + sa.Column('last_name', sa.String(length=255), nullable=False), + sa.Column('email', sa.String(length=255), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('email') + ) + op.create_table('users', + sa.Column('role', sa.Enum(name='user_roles'), nullable=False), + sa.Column('id', fastapi_users_db_sqlalchemy.generics.GUID(), nullable=False), + sa.Column('email', sa.String(length=320), nullable=False), + sa.Column('hashed_password', sa.String(length=1024), nullable=False), + sa.Column('is_active', sa.Boolean(), nullable=False), + sa.Column('is_superuser', sa.Boolean(), nullable=False), + sa.Column('is_verified', sa.Boolean(), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_users_email'), 'users', ['email'], unique=True) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index(op.f('ix_users_email'), table_name='users') + op.drop_table('users') + op.drop_table('tutors') + op.drop_table('employees') + # ### end Alembic commands ### diff --git "a/backend/migrations/versions/2023_11_02_1709-6e79091c3fb1_\320\264\320\276\320\261\320\260\320\262\320\273\321\217\320\265\321\202_\320\276\321\201\320\275\320\276\320\262\321\203_\320\264\320\273\321\217_\320\267\320\260\320\264\320\260\320\275\320\270\320\271.py" "b/backend/migrations/versions/2023_11_02_1709-6e79091c3fb1_\320\264\320\276\320\261\320\260\320\262\320\273\321\217\320\265\321\202_\320\276\321\201\320\275\320\276\320\262\321\203_\320\264\320\273\321\217_\320\267\320\260\320\264\320\260\320\275\320\270\320\271.py" new file mode 100644 index 0000000..f403ddb --- /dev/null +++ "b/backend/migrations/versions/2023_11_02_1709-6e79091c3fb1_\320\264\320\276\320\261\320\260\320\262\320\273\321\217\320\265\321\202_\320\276\321\201\320\275\320\276\320\262\321\203_\320\264\320\273\321\217_\320\267\320\260\320\264\320\260\320\275\320\270\320\271.py" @@ -0,0 +1,69 @@ +"""Добавляет основу для заданий + +Revision ID: 6e79091c3fb1 +Revises: ea5f600c8967 +Create Date: 2023-11-02 17:09:18.002665 + +""" +from typing import Sequence, Union + +import sqlalchemy_utils +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = '6e79091c3fb1' +down_revision: Union[str, None] = 'ea5f600c8967' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('levels', + sa.Column('id', sa.UUID(), nullable=False), + sa.Column('name', sa.String(length=255), nullable=False), + sa.Column('is_accomplished', sa.Boolean(), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('maps', + sa.Column('id', sa.UUID(), nullable=False), + sa.Column('name', sa.String(length=255), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('modules', + sa.Column('id', sa.UUID(), nullable=False), + sa.Column('name', sa.String(length=255), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('tasks', + sa.Column('id', sa.UUID(), nullable=False), + sa.Column('is_accomplished', sa.Boolean(), nullable=False), + sa.Column('score_reward', sa.Integer(), nullable=False), + sa.Column('content', sa.Text(), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('theory_blocks', + sa.Column('id', sa.UUID(), nullable=False), + sa.Column('theme', sa.String(), nullable=False), + sa.Column('content', sa.Text(), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('theory_videos', + sa.Column('id', sa.UUID(), nullable=False), + sa.Column('url', sqlalchemy_utils.types.url.URLType(), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('theory_videos') + op.drop_table('theory_blocks') + op.drop_table('tasks') + op.drop_table('modules') + op.drop_table('maps') + op.drop_table('levels') + # ### end Alembic commands ###