mirror of
https://github.com/EDeev/web-dev.git
synced 2026-06-15 19:11:12 +03:00
89 lines
3.7 KiB
Python
89 lines
3.7 KiB
Python
"""empty message
|
|
|
|
Revision ID: 9f3eafbe74db
|
|
Revises:
|
|
Create Date: 2026-02-25 16:02:49.708125
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = '9f3eafbe74db'
|
|
down_revision = None
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade():
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.create_table('categories',
|
|
sa.Column('id', sa.Integer(), nullable=False),
|
|
sa.Column('name', sa.String(length=100), nullable=False),
|
|
sa.Column('parent_id', sa.Integer(), nullable=True),
|
|
sa.ForeignKeyConstraint(['parent_id'], ['categories.id'], name=op.f('fk_categories_parent_id_categories')),
|
|
sa.PrimaryKeyConstraint('id', name=op.f('pk_categories'))
|
|
)
|
|
op.create_table('images',
|
|
sa.Column('id', sa.String(length=100), nullable=False),
|
|
sa.Column('file_name', sa.String(length=100), nullable=False),
|
|
sa.Column('mime_type', sa.String(length=100), nullable=False),
|
|
sa.Column('md5_hash', sa.String(length=100), nullable=False),
|
|
sa.Column('object_id', sa.Integer(), nullable=True),
|
|
sa.Column('object_type', sa.String(length=100), nullable=True),
|
|
sa.Column('created_at', sa.DateTime(), nullable=False),
|
|
sa.PrimaryKeyConstraint('id', name=op.f('pk_images')),
|
|
sa.UniqueConstraint('md5_hash', name=op.f('uq_images_md5_hash'))
|
|
)
|
|
op.create_table('users',
|
|
sa.Column('id', sa.Integer(), nullable=False),
|
|
sa.Column('first_name', sa.String(length=100), nullable=False),
|
|
sa.Column('last_name', sa.String(length=100), nullable=False),
|
|
sa.Column('middle_name', sa.String(length=100), nullable=True),
|
|
sa.Column('login', sa.String(length=100), nullable=False),
|
|
sa.Column('password_hash', sa.String(length=200), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=False),
|
|
sa.PrimaryKeyConstraint('id', name=op.f('pk_users')),
|
|
sa.UniqueConstraint('login', name=op.f('uq_users_login'))
|
|
)
|
|
op.create_table('courses',
|
|
sa.Column('id', sa.Integer(), nullable=False),
|
|
sa.Column('name', sa.String(length=100), nullable=False),
|
|
sa.Column('short_desc', sa.Text(), nullable=False),
|
|
sa.Column('full_desc', sa.Text(), nullable=False),
|
|
sa.Column('rating_sum', sa.Integer(), nullable=False),
|
|
sa.Column('rating_num', sa.Integer(), nullable=False),
|
|
sa.Column('category_id', sa.Integer(), nullable=False),
|
|
sa.Column('author_id', sa.Integer(), nullable=False),
|
|
sa.Column('background_image_id', sa.String(length=100), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(), nullable=False),
|
|
sa.ForeignKeyConstraint(['author_id'], ['users.id'], name=op.f('fk_courses_author_id_users')),
|
|
sa.ForeignKeyConstraint(['background_image_id'], ['images.id'], name=op.f('fk_courses_background_image_id_images')),
|
|
sa.ForeignKeyConstraint(['category_id'], ['categories.id'], name=op.f('fk_courses_category_id_categories')),
|
|
sa.PrimaryKeyConstraint('id', name=op.f('pk_courses'))
|
|
)
|
|
# ### end Alembic commands ###
|
|
data_upgrades() # Заполнение таблицы categories начальными данными
|
|
|
|
|
|
# Начальные данные
|
|
def data_upgrades():
|
|
"""Заполнение категорий."""
|
|
table = sa.sql.table('categories', sa.sql.column('name', sa.String))
|
|
op.bulk_insert(table,
|
|
[
|
|
{'name': 'Программирование'},
|
|
{'name': 'Математика'},
|
|
{'name': 'Языкознание'},
|
|
]
|
|
)
|
|
|
|
|
|
def downgrade():
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.drop_table('courses')
|
|
op.drop_table('users')
|
|
op.drop_table('images')
|
|
op.drop_table('categories')
|
|
# ### end Alembic commands ###
|