|
@@ -0,0 +1,68 @@
|
|
|
|
+"""add membership, progress and modify user and add video
|
|
|
|
+
|
|
|
|
+Revision ID: 208dd144a013
|
|
|
|
+Revises: d4867f3a4c0a
|
|
|
|
+Create Date: 2023-02-19 17:25:35.565786
|
|
|
|
+
|
|
|
|
+"""
|
|
|
|
+from alembic import op
|
|
|
|
+import sqlalchemy as sa
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+# revision identifiers, used by Alembic.
|
|
|
|
+revision = '208dd144a013'
|
|
|
|
+down_revision = 'd4867f3a4c0a'
|
|
|
|
+branch_labels = None
|
|
|
|
+depends_on = None
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def upgrade():
|
|
|
|
+ # ### commands auto generated by Alembic - please adjust! ###
|
|
|
|
+ op.create_table('membership',
|
|
|
|
+ sa.Column('status', sa.String(length=20), nullable=False),
|
|
|
|
+ sa.PrimaryKeyConstraint('status')
|
|
|
|
+ )
|
|
|
|
+ op.create_table('progress',
|
|
|
|
+ sa.Column('state', sa.String(length=20), nullable=False),
|
|
|
|
+ sa.PrimaryKeyConstraint('state')
|
|
|
|
+ )
|
|
|
|
+ op.create_table('video',
|
|
|
|
+ sa.Column('id', sa.Integer(), nullable=False),
|
|
|
|
+ sa.Column('title', sa.String(), nullable=True),
|
|
|
|
+ sa.Column('progress_state', sa.String(length=20), nullable=True),
|
|
|
|
+ sa.Column('owner_id', sa.Integer(), nullable=True),
|
|
|
|
+ sa.ForeignKeyConstraint(['owner_id'], ['user.id'], ),
|
|
|
|
+ sa.ForeignKeyConstraint(['progress_state'], ['progress.state'], onupdate='CASCADE', ondelete='RESTRICT'),
|
|
|
|
+ sa.PrimaryKeyConstraint('id')
|
|
|
|
+ )
|
|
|
|
+ op.create_index(op.f('ix_video_id'), 'video', ['id'], unique=False)
|
|
|
|
+ op.create_index(op.f('ix_video_title'), 'video', ['title'], unique=False)
|
|
|
|
+ op.add_column('user', sa.Column('membership_status', sa.String(length=20), nullable=True))
|
|
|
|
+ op.add_column('user', sa.Column('available_time', sa.Integer(), nullable=True))
|
|
|
|
+ op.alter_column('user', 'email',
|
|
|
|
+ existing_type=sa.VARCHAR(),
|
|
|
|
+ nullable=False)
|
|
|
|
+ op.alter_column('user', 'hashed_password',
|
|
|
|
+ existing_type=sa.VARCHAR(),
|
|
|
|
+ nullable=False)
|
|
|
|
+ op.create_foreign_key(None, 'user', 'membership', ['membership_status'], ['status'], onupdate='CASCADE', ondelete='RESTRICT')
|
|
|
|
+ # ### end Alembic commands ###
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def downgrade():
|
|
|
|
+ # ### commands auto generated by Alembic - please adjust! ###
|
|
|
|
+ op.drop_constraint(None, 'user', type_='foreignkey')
|
|
|
|
+ op.alter_column('user', 'hashed_password',
|
|
|
|
+ existing_type=sa.VARCHAR(),
|
|
|
|
+ nullable=True)
|
|
|
|
+ op.alter_column('user', 'email',
|
|
|
|
+ existing_type=sa.VARCHAR(),
|
|
|
|
+ nullable=True)
|
|
|
|
+ op.drop_column('user', 'available_time')
|
|
|
|
+ op.drop_column('user', 'membership_status')
|
|
|
|
+ op.drop_index(op.f('ix_video_title'), table_name='video')
|
|
|
|
+ op.drop_index(op.f('ix_video_id'), table_name='video')
|
|
|
|
+ op.drop_table('video')
|
|
|
|
+ op.drop_table('progress')
|
|
|
|
+ op.drop_table('membership')
|
|
|
|
+ # ### end Alembic commands ###
|