1010from alembic import op
1111import sqlalchemy as sa
1212import sqlmodel .sql .sqltypes
13+ from sqlalchemy .dialects import postgresql
1314
1415
1516# revision identifiers, used by Alembic.
2122
2223def upgrade () -> None :
2324 # ### commands auto generated by Alembic - please adjust! ###
25+
26+ # Modify the user table to set default values
27+ op .alter_column ('user' , 'is_active' ,
28+ existing_type = sa .BOOLEAN (),
29+ server_default = sa .true (),
30+ existing_nullable = False )
31+ op .alter_column ('user' , 'is_superuser' ,
32+ existing_type = sa .BOOLEAN (),
33+ server_default = sa .false (),
34+ existing_nullable = False )
35+
36+ # Create path table with correct columns
2437 op .create_table ('path' ,
25- sa .Column ('id' , sqlmodel .sql .sqltypes .GUID (), nullable = False ),
26- sa .Column ('title' , sqlmodel .sql .sqltypes .AutoString (length = 100 ), nullable = False ),
27- sa .Column ('description' , sqlmodel .sql .sqltypes .AutoString (), nullable = True ),
28- sa .Column ('owner_id' , sqlmodel .sql .sqltypes .GUID (), nullable = False ),
29- sa .ForeignKeyConstraint (['owner_id' ], ['user.id' ], ondelete = 'CASCADE' ),
30- sa .PrimaryKeyConstraint ('id' )
38+ sa .Column ('id' , postgresql .UUID (as_uuid = True ), nullable = False ),
39+ sa .Column ('creator_id' , postgresql .UUID (as_uuid = True ), nullable = False ),
40+ sa .Column ('title' , sqlmodel .sql .sqltypes .AutoString (length = 255 ), nullable = False ),
41+ sa .Column ('path_summary' , sqlmodel .sql .sqltypes .AutoString (length = 255 ), nullable = True ),
42+ sa .Column ('created_at' , sa .DateTime (), nullable = False ),
43+ sa .Column ('updated_at' , sa .DateTime (), nullable = False ),
44+ sa .ForeignKeyConstraint (['creator_id' ], ['user.id' ], ondelete = 'CASCADE' ),
45+ sa .PrimaryKeyConstraint ('id' )
3146 )
47+
48+ # Create step table
3249 op .create_table ('step' ,
33- sa .Column ('id' , sqlmodel .sql .sqltypes .GUID (), nullable = False ),
34- sa .Column ('title' , sqlmodel .sql .sqltypes .AutoString (length = 100 ), nullable = False ),
35- sa .Column ('description' , sqlmodel .sql .sqltypes .AutoString (), nullable = True ),
36- sa .Column ('path_id' , sqlmodel .sql .sqltypes .GUID (), nullable = False ),
37- sa .Column ('order' , sa .Integer (), nullable = False ),
38- sa .ForeignKeyConstraint (['path_id' ], ['path.id' ], ondelete = 'CASCADE' ),
39- sa .PrimaryKeyConstraint ('id' )
50+ sa .Column ('id' , sa .Integer (), nullable = False ),
51+ sa .Column ('path_id' , postgresql .UUID (as_uuid = True ), nullable = False ),
52+ sa .Column ('number' , sa .Integer (), nullable = False ),
53+ sa .Column ('role_prompt' , sqlmodel .sql .sqltypes .AutoString (), nullable = True ),
54+ sa .Column ('validation_prompt' , sqlmodel .sql .sqltypes .AutoString (), nullable = True ),
55+ sa .Column ('exposition_json' , sqlmodel .sql .sqltypes .AutoString (), nullable = True ),
56+ sa .ForeignKeyConstraint (['path_id' ], ['path.id' ], ondelete = 'CASCADE' ),
57+ sa .PrimaryKeyConstraint ('id' )
4058 )
4159 # ### end Alembic commands ###
4260
@@ -45,4 +63,14 @@ def downgrade() -> None:
4563 # ### commands auto generated by Alembic - please adjust! ###
4664 op .drop_table ('step' )
4765 op .drop_table ('path' )
66+
67+ # Remove default values from user table
68+ op .alter_column ('user' , 'is_active' ,
69+ existing_type = sa .BOOLEAN (),
70+ server_default = None ,
71+ existing_nullable = False )
72+ op .alter_column ('user' , 'is_superuser' ,
73+ existing_type = sa .BOOLEAN (),
74+ server_default = None ,
75+ existing_nullable = False )
4876 # ### end Alembic commands ###
0 commit comments