|
5 | 5 | Create Date: 2025-10-30 10:58:02.168458 |
6 | 6 |
|
7 | 7 | """ |
8 | | -from alembic import op |
| 8 | + |
9 | 9 | import sqlalchemy as sa |
| 10 | +from alembic import op |
10 | 11 |
|
11 | 12 | # revision identifiers, used by Alembic. |
12 | | -revision = '8fe0bc0038f8' |
| 13 | +revision = "8fe0bc0038f8" |
13 | 14 | down_revision = None |
14 | 15 | branch_labels = None |
15 | 16 | depends_on = None |
|
18 | 19 | def upgrade() -> None: |
19 | 20 | # Roles |
20 | 21 | op.create_table( |
21 | | - 'roles', |
22 | | - sa.Column('id', sa.String(length=36), primary_key=True, nullable=False), |
23 | | - sa.Column('name', sa.String(length=50), nullable=False), |
24 | | - sa.Column('description', sa.String(length=255), nullable=True), |
25 | | - sa.Column('created_at', sa.DateTime(timezone=True), nullable=False), |
26 | | - sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False), |
27 | | - sa.UniqueConstraint('name', name='uq_roles_name'), |
| 22 | + "roles", |
| 23 | + sa.Column("id", sa.String(length=36), primary_key=True, nullable=False), |
| 24 | + sa.Column("name", sa.String(length=50), nullable=False), |
| 25 | + sa.Column("description", sa.String(length=255), nullable=True), |
| 26 | + sa.Column("created_at", sa.DateTime(timezone=True), nullable=False), |
| 27 | + sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False), |
| 28 | + sa.UniqueConstraint("name", name="uq_roles_name"), |
28 | 29 | ) |
29 | | - op.create_index('ix_roles_name', 'roles', ['name'], unique=True) |
| 30 | + op.create_index("ix_roles_name", "roles", ["name"], unique=True) |
30 | 31 |
|
31 | 32 | # Permissions |
32 | 33 | op.create_table( |
33 | | - 'permissions', |
34 | | - sa.Column('id', sa.String(length=36), primary_key=True, nullable=False), |
35 | | - sa.Column('name', sa.String(length=100), nullable=False), |
36 | | - sa.Column('resource', sa.String(length=50), nullable=False), |
37 | | - sa.Column('action', sa.String(length=50), nullable=False), |
38 | | - sa.Column('description', sa.String(length=255), nullable=True), |
39 | | - sa.UniqueConstraint('name', name='uq_permissions_name'), |
| 34 | + "permissions", |
| 35 | + sa.Column("id", sa.String(length=36), primary_key=True, nullable=False), |
| 36 | + sa.Column("name", sa.String(length=100), nullable=False), |
| 37 | + sa.Column("resource", sa.String(length=50), nullable=False), |
| 38 | + sa.Column("action", sa.String(length=50), nullable=False), |
| 39 | + sa.Column("description", sa.String(length=255), nullable=True), |
| 40 | + sa.UniqueConstraint("name", name="uq_permissions_name"), |
40 | 41 | ) |
41 | | - op.create_index('ix_permissions_name', 'permissions', ['name'], unique=True) |
42 | | - op.create_index('ix_permissions_resource', 'permissions', ['resource'], unique=False) |
43 | | - op.create_index('ix_permissions_action', 'permissions', ['action'], unique=False) |
| 42 | + op.create_index("ix_permissions_name", "permissions", ["name"], unique=True) |
| 43 | + op.create_index( |
| 44 | + "ix_permissions_resource", "permissions", ["resource"], unique=False |
| 45 | + ) |
| 46 | + op.create_index("ix_permissions_action", "permissions", ["action"], unique=False) |
44 | 47 |
|
45 | 48 | # Users |
46 | 49 | op.create_table( |
47 | | - 'users', |
48 | | - sa.Column('id', sa.String(length=36), primary_key=True, nullable=False), |
49 | | - sa.Column('username', sa.String(length=50), nullable=False), |
50 | | - sa.Column('email', sa.String(length=255), nullable=False), |
51 | | - sa.Column('hashed_password', sa.String(length=255), nullable=False), |
52 | | - sa.Column('full_name', sa.String(length=255), nullable=True), |
53 | | - sa.Column('is_active', sa.Boolean(), nullable=False, server_default=sa.text('1')), |
54 | | - sa.Column('is_superuser', sa.Boolean(), nullable=False, server_default=sa.text('0')), |
55 | | - sa.Column('created_at', sa.DateTime(timezone=True), nullable=False), |
56 | | - sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False), |
57 | | - sa.UniqueConstraint('username', name='uq_users_username'), |
58 | | - sa.UniqueConstraint('email', name='uq_users_email'), |
| 50 | + "users", |
| 51 | + sa.Column("id", sa.String(length=36), primary_key=True, nullable=False), |
| 52 | + sa.Column("username", sa.String(length=50), nullable=False), |
| 53 | + sa.Column("email", sa.String(length=255), nullable=False), |
| 54 | + sa.Column("hashed_password", sa.String(length=255), nullable=False), |
| 55 | + sa.Column("full_name", sa.String(length=255), nullable=True), |
| 56 | + sa.Column( |
| 57 | + "is_active", sa.Boolean(), nullable=False, server_default=sa.text("1") |
| 58 | + ), |
| 59 | + sa.Column( |
| 60 | + "is_superuser", sa.Boolean(), nullable=False, server_default=sa.text("0") |
| 61 | + ), |
| 62 | + sa.Column("created_at", sa.DateTime(timezone=True), nullable=False), |
| 63 | + sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False), |
| 64 | + sa.UniqueConstraint("username", name="uq_users_username"), |
| 65 | + sa.UniqueConstraint("email", name="uq_users_email"), |
59 | 66 | ) |
60 | | - op.create_index('ix_users_username', 'users', ['username'], unique=True) |
61 | | - op.create_index('ix_users_email', 'users', ['email'], unique=True) |
| 67 | + op.create_index("ix_users_username", "users", ["username"], unique=True) |
| 68 | + op.create_index("ix_users_email", "users", ["email"], unique=True) |
62 | 69 |
|
63 | 70 | # Association: user_roles |
64 | 71 | op.create_table( |
65 | | - 'user_roles', |
66 | | - sa.Column('user_id', sa.String(length=36), nullable=False), |
67 | | - sa.Column('role_id', sa.String(length=36), nullable=False), |
68 | | - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ondelete='CASCADE'), |
69 | | - sa.ForeignKeyConstraint(['role_id'], ['roles.id'], ondelete='CASCADE'), |
| 72 | + "user_roles", |
| 73 | + sa.Column("user_id", sa.String(length=36), nullable=False), |
| 74 | + sa.Column("role_id", sa.String(length=36), nullable=False), |
| 75 | + sa.ForeignKeyConstraint(["user_id"], ["users.id"], ondelete="CASCADE"), |
| 76 | + sa.ForeignKeyConstraint(["role_id"], ["roles.id"], ondelete="CASCADE"), |
70 | 77 | ) |
71 | | - op.create_index('ix_user_roles_user_id', 'user_roles', ['user_id'], unique=False) |
72 | | - op.create_index('ix_user_roles_role_id', 'user_roles', ['role_id'], unique=False) |
| 78 | + op.create_index("ix_user_roles_user_id", "user_roles", ["user_id"], unique=False) |
| 79 | + op.create_index("ix_user_roles_role_id", "user_roles", ["role_id"], unique=False) |
73 | 80 |
|
74 | 81 | # Association: role_permissions |
75 | 82 | op.create_table( |
76 | | - 'role_permissions', |
77 | | - sa.Column('role_id', sa.String(length=36), nullable=False), |
78 | | - sa.Column('permission_id', sa.String(length=36), nullable=False), |
79 | | - sa.ForeignKeyConstraint(['role_id'], ['roles.id'], ondelete='CASCADE'), |
80 | | - sa.ForeignKeyConstraint(['permission_id'], ['permissions.id'], ondelete='CASCADE'), |
| 83 | + "role_permissions", |
| 84 | + sa.Column("role_id", sa.String(length=36), nullable=False), |
| 85 | + sa.Column("permission_id", sa.String(length=36), nullable=False), |
| 86 | + sa.ForeignKeyConstraint(["role_id"], ["roles.id"], ondelete="CASCADE"), |
| 87 | + sa.ForeignKeyConstraint( |
| 88 | + ["permission_id"], ["permissions.id"], ondelete="CASCADE" |
| 89 | + ), |
| 90 | + ) |
| 91 | + op.create_index( |
| 92 | + "ix_role_permissions_role_id", "role_permissions", ["role_id"], unique=False |
| 93 | + ) |
| 94 | + op.create_index( |
| 95 | + "ix_role_permissions_permission_id", |
| 96 | + "role_permissions", |
| 97 | + ["permission_id"], |
| 98 | + unique=False, |
81 | 99 | ) |
82 | | - op.create_index('ix_role_permissions_role_id', 'role_permissions', ['role_id'], unique=False) |
83 | | - op.create_index('ix_role_permissions_permission_id', 'role_permissions', ['permission_id'], unique=False) |
84 | 100 |
|
85 | 101 |
|
86 | 102 | def downgrade() -> None: |
87 | | - op.drop_index('ix_role_permissions_permission_id', table_name='role_permissions') |
88 | | - op.drop_index('ix_role_permissions_role_id', table_name='role_permissions') |
89 | | - op.drop_table('role_permissions') |
| 103 | + op.drop_index("ix_role_permissions_permission_id", table_name="role_permissions") |
| 104 | + op.drop_index("ix_role_permissions_role_id", table_name="role_permissions") |
| 105 | + op.drop_table("role_permissions") |
90 | 106 |
|
91 | | - op.drop_index('ix_user_roles_role_id', table_name='user_roles') |
92 | | - op.drop_index('ix_user_roles_user_id', table_name='user_roles') |
93 | | - op.drop_table('user_roles') |
| 107 | + op.drop_index("ix_user_roles_role_id", table_name="user_roles") |
| 108 | + op.drop_index("ix_user_roles_user_id", table_name="user_roles") |
| 109 | + op.drop_table("user_roles") |
94 | 110 |
|
95 | | - op.drop_index('ix_users_email', table_name='users') |
96 | | - op.drop_index('ix_users_username', table_name='users') |
97 | | - op.drop_table('users') |
| 111 | + op.drop_index("ix_users_email", table_name="users") |
| 112 | + op.drop_index("ix_users_username", table_name="users") |
| 113 | + op.drop_table("users") |
98 | 114 |
|
99 | | - op.drop_index('ix_permissions_action', table_name='permissions') |
100 | | - op.drop_index('ix_permissions_resource', table_name='permissions') |
101 | | - op.drop_index('ix_permissions_name', table_name='permissions') |
102 | | - op.drop_table('permissions') |
| 115 | + op.drop_index("ix_permissions_action", table_name="permissions") |
| 116 | + op.drop_index("ix_permissions_resource", table_name="permissions") |
| 117 | + op.drop_index("ix_permissions_name", table_name="permissions") |
| 118 | + op.drop_table("permissions") |
103 | 119 |
|
104 | | - op.drop_index('ix_roles_name', table_name='roles') |
105 | | - op.drop_table('roles') |
| 120 | + op.drop_index("ix_roles_name", table_name="roles") |
| 121 | + op.drop_table("roles") |
0 commit comments