Restore intermediate Alembic revisions required by the local migration chain.
EOF Co-authored-by: Cursor <cursoragent@cursor.com>Rcruiter_hub
parent
f6733b59c2
commit
55435fd29e
|
|
@ -0,0 +1,53 @@
|
|||
"""auto
|
||||
|
||||
Revision ID: 2515ed7e2966
|
||||
Revises: 72853b8d2126
|
||||
Create Date: 2026-08-07 14:49:26.409410+00:00
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel # SQLModel renders AutoString() into migrations but adds no import
|
||||
|
||||
|
||||
revision: str = '2515ed7e2966'
|
||||
down_revision: Union[str, None] = '72853b8d2126'
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
# Deliberately NOT schema-qualified: Inbox_Messages.application_status carries
|
||||
# type.schema = None, so the ORM emits the type name unqualified and resolves it
|
||||
# through search_path. Creating it as app.<name> would not match.
|
||||
application_status = sa.Enum(
|
||||
'PROCESS', 'PENDING', 'APPROVED', 'REJECTED', 'ONHOLD', 'CLOSED',
|
||||
name='candidate_application_status',
|
||||
)
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# op.add_column does NOT emit CREATE TYPE, so the ALTER below would fail with
|
||||
# `type "candidate_application_status" does not exist`.
|
||||
application_status.create(op.get_bind(), checkfirst=True)
|
||||
# server_default is required, not cosmetic: the column is NOT NULL and every
|
||||
# existing row would be null without it, which Postgres rejects outright.
|
||||
op.add_column(
|
||||
'inbox_messages',
|
||||
sa.Column(
|
||||
'application_status',
|
||||
application_status,
|
||||
nullable=False,
|
||||
server_default='CLOSED',
|
||||
),
|
||||
schema='app',
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_column('inbox_messages', 'application_status', schema='app')
|
||||
# drop_column leaves the TYPE behind; without this, re-running upgrade fails
|
||||
# with `type "candidate_application_status" already exists`.
|
||||
application_status.drop(op.get_bind(), checkfirst=True)
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
"""auto
|
||||
|
||||
Revision ID: 8c67df87f19c
|
||||
Revises: 2515ed7e2966
|
||||
Create Date: 2026-08-07 14:55:42.858317+00:00
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel # SQLModel renders AutoString() into migrations but adds no import
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
revision: str = '8c67df87f19c'
|
||||
down_revision: Union[str, None] = '2515ed7e2966'
|
||||
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.alter_column('inbox_messages', 'application_status',
|
||||
existing_type=postgresql.ENUM('PROCESS', 'PENDING', 'APPROVED', 'REJECTED', 'ONHOLD', 'CLOSED', name='candidate_application_status'),
|
||||
server_default=None,
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.alter_column('inbox_messages', 'application_status',
|
||||
existing_type=postgresql.ENUM('PROCESS', 'PENDING', 'APPROVED', 'REJECTED', 'ONHOLD', 'CLOSED', name='candidate_application_status'),
|
||||
server_default=sa.text("'CLOSED'::candidate_application_status"),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
"""add experience to inbox_messages
|
||||
|
||||
Revision ID: fcd3f4d69b60
|
||||
Revises: 8c67df87f19c
|
||||
Create Date: 2026-08-10 09:56:55.290497+00:00
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel # SQLModel renders AutoString() into migrations but adds no import
|
||||
|
||||
|
||||
revision: str = 'fcd3f4d69b60'
|
||||
down_revision: Union[str, None] = '8c67df87f19c'
|
||||
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.add_column('inbox_messages', sa.Column('experience', sqlmodel.sql.sqltypes.AutoString(), nullable=True), schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('inbox_messages', 'experience', schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
"""auto
|
||||
|
||||
Revision ID: ed78f1706042
|
||||
Revises: fcd3f4d69b60
|
||||
Create Date: 2026-08-11 10:07:53.324376+00:00
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel # SQLModel renders AutoString() into migrations but adds no import
|
||||
|
||||
|
||||
revision: str = 'ed78f1706042'
|
||||
down_revision: Union[str, None] = 'fcd3f4d69b60'
|
||||
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.add_column('inbox_messages', sa.Column('candidate_phone_number', sqlmodel.sql.sqltypes.AutoString(), nullable=True), schema='app')
|
||||
op.add_column('inbox_messages', sa.Column('current_employment', sqlmodel.sql.sqltypes.AutoString(), nullable=True), schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('inbox_messages', 'current_employment', schema='app')
|
||||
op.drop_column('inbox_messages', 'candidate_phone_number', schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
"""auto
|
||||
|
||||
Revision ID: d0b62342a32f
|
||||
Revises: ed78f1706042
|
||||
Create Date: 2026-08-11 11:49:25.965217+00:00
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel # SQLModel renders AutoString() into migrations but adds no import
|
||||
|
||||
|
||||
revision: str = 'd0b62342a32f'
|
||||
down_revision: Union[str, None] = 'ed78f1706042'
|
||||
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('notes',
|
||||
sa.Column('id', sa.Uuid(), nullable=False),
|
||||
sa.Column('note', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(), nullable=False),
|
||||
sa.Column('user_id', sa.Uuid(), nullable=True),
|
||||
sa.Column('created_by', sa.Uuid(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['created_by'], ['app.users.id'], name=op.f('fk_notes_created_by_users')),
|
||||
sa.ForeignKeyConstraint(['user_id'], ['app.users.id'], name=op.f('fk_notes_user_id_users')),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_notes')),
|
||||
schema='app'
|
||||
)
|
||||
op.create_table('activity',
|
||||
sa.Column('id', sa.Uuid(), nullable=False),
|
||||
sa.Column('activity_type', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('activity_date', sa.DateTime(), nullable=False),
|
||||
sa.Column('activity_time', sa.DateTime(), nullable=False),
|
||||
sa.Column('activity_status', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('description', sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
||||
sa.Column('inbox_id', sa.Integer(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['inbox_id'], ['app.inbox.id'], name=op.f('fk_activity_inbox_id_inbox')),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_activity')),
|
||||
schema='app'
|
||||
)
|
||||
op.create_table('feedback',
|
||||
sa.Column('id', sa.Uuid(), nullable=False),
|
||||
sa.Column('review', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('financial_status', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('score', sa.Float(), nullable=False),
|
||||
sa.Column('note', sqlmodel.sql.sqltypes.AutoString(), nullable=True),
|
||||
sa.Column('created_at', sa.DateTime(), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(), nullable=False),
|
||||
sa.Column('reviewed_by', sa.Uuid(), nullable=True),
|
||||
sa.Column('inbox_id', sa.Integer(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['inbox_id'], ['app.inbox.id'], name=op.f('fk_feedback_inbox_id_inbox')),
|
||||
sa.ForeignKeyConstraint(['reviewed_by'], ['app.users.id'], name=op.f('fk_feedback_reviewed_by_users')),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_feedback')),
|
||||
schema='app'
|
||||
)
|
||||
op.create_table('interviews',
|
||||
sa.Column('id', sa.Uuid(), nullable=False),
|
||||
sa.Column('interview_date', sa.DateTime(), nullable=False),
|
||||
sa.Column('interview_time', sa.DateTime(), nullable=False),
|
||||
sa.Column('interview_type', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('interview_status', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('inbox_id', sa.Integer(), nullable=True),
|
||||
sa.ForeignKeyConstraint(['inbox_id'], ['app.inbox.id'], name=op.f('fk_interviews_inbox_id_inbox')),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_interviews')),
|
||||
schema='app'
|
||||
)
|
||||
op.add_column('inbox', sa.Column('favorite', sa.Boolean(), nullable=True), schema='app')
|
||||
op.add_column('inbox', sa.Column('rating', sa.Float(), nullable=True), schema='app')
|
||||
op.add_column('inbox_messages', sa.Column('candidate_education', sqlmodel.sql.sqltypes.AutoString(), nullable=True), schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('inbox_messages', 'candidate_education', schema='app')
|
||||
op.drop_column('inbox', 'rating', schema='app')
|
||||
op.drop_column('inbox', 'favorite', schema='app')
|
||||
op.drop_table('interviews', schema='app')
|
||||
op.drop_table('feedback', schema='app')
|
||||
op.drop_table('activity', schema='app')
|
||||
op.drop_table('notes', schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
"""auto
|
||||
|
||||
Revision ID: 681a78158447
|
||||
Revises: d0b62342a32f
|
||||
Create Date: 2026-08-11 13:11:58.032282+00:00
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel # SQLModel renders AutoString() into migrations but adds no import
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
revision: str = '681a78158447'
|
||||
down_revision: Union[str, None] = 'd0b62342a32f'
|
||||
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.alter_column('activity', 'activity_date',
|
||||
existing_type=postgresql.TIMESTAMP(),
|
||||
type_=sa.DateTime(timezone=True),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('activity', 'activity_time',
|
||||
existing_type=postgresql.TIMESTAMP(),
|
||||
type_=sa.DateTime(timezone=True),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('feedback', 'created_at',
|
||||
existing_type=postgresql.TIMESTAMP(),
|
||||
type_=sa.DateTime(timezone=True),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('feedback', 'updated_at',
|
||||
existing_type=postgresql.TIMESTAMP(),
|
||||
type_=sa.DateTime(timezone=True),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('interviews', 'interview_date',
|
||||
existing_type=postgresql.TIMESTAMP(),
|
||||
type_=sa.DateTime(timezone=True),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('interviews', 'interview_time',
|
||||
existing_type=postgresql.TIMESTAMP(),
|
||||
type_=sa.DateTime(timezone=True),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('notes', 'created_at',
|
||||
existing_type=postgresql.TIMESTAMP(),
|
||||
type_=sa.DateTime(timezone=True),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('notes', 'updated_at',
|
||||
existing_type=postgresql.TIMESTAMP(),
|
||||
type_=sa.DateTime(timezone=True),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.alter_column('notes', 'updated_at',
|
||||
existing_type=sa.DateTime(timezone=True),
|
||||
type_=postgresql.TIMESTAMP(),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('notes', 'created_at',
|
||||
existing_type=sa.DateTime(timezone=True),
|
||||
type_=postgresql.TIMESTAMP(),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('interviews', 'interview_time',
|
||||
existing_type=sa.DateTime(timezone=True),
|
||||
type_=postgresql.TIMESTAMP(),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('interviews', 'interview_date',
|
||||
existing_type=sa.DateTime(timezone=True),
|
||||
type_=postgresql.TIMESTAMP(),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('feedback', 'updated_at',
|
||||
existing_type=sa.DateTime(timezone=True),
|
||||
type_=postgresql.TIMESTAMP(),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('feedback', 'created_at',
|
||||
existing_type=sa.DateTime(timezone=True),
|
||||
type_=postgresql.TIMESTAMP(),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('activity', 'activity_time',
|
||||
existing_type=sa.DateTime(timezone=True),
|
||||
type_=postgresql.TIMESTAMP(),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
op.alter_column('activity', 'activity_date',
|
||||
existing_type=sa.DateTime(timezone=True),
|
||||
type_=postgresql.TIMESTAMP(),
|
||||
existing_nullable=False,
|
||||
schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
"""auto
|
||||
|
||||
Revision ID: 67c4c7974afa
|
||||
Revises: 681a78158447
|
||||
Create Date: 2026-08-11 13:52:11.674108+00:00
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel # SQLModel renders AutoString() into migrations but adds no import
|
||||
|
||||
|
||||
revision: str = '67c4c7974afa'
|
||||
down_revision: Union[str, None] = '681a78158447'
|
||||
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.add_column('inbox_messages', sa.Column('assigned_job_post_id', sa.Uuid(), nullable=True), schema='app')
|
||||
op.create_index(op.f('ix_inbox_messages_assigned_job_post_id'), 'inbox_messages', ['assigned_job_post_id'], unique=False, schema='app')
|
||||
op.create_foreign_key(op.f('fk_inbox_messages_assigned_job_post_id_job_posts'), 'inbox_messages', 'job_posts', ['assigned_job_post_id'], ['id'], source_schema='app', referent_schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_constraint(op.f('fk_inbox_messages_assigned_job_post_id_job_posts'), 'inbox_messages', schema='app', type_='foreignkey')
|
||||
op.drop_index(op.f('ix_inbox_messages_assigned_job_post_id'), table_name='inbox_messages', schema='app')
|
||||
op.drop_column('inbox_messages', 'assigned_job_post_id', schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
"""auto
|
||||
|
||||
Revision ID: 4b34909ae551
|
||||
Revises: 67c4c7974afa
|
||||
Create Date: 2026-08-12 07:46:38.028948+00:00
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel # SQLModel renders AutoString() into migrations but adds no import
|
||||
|
||||
|
||||
revision: str = '4b34909ae551'
|
||||
down_revision: Union[str, None] = '67c4c7974afa'
|
||||
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('manual_upload_candidate',
|
||||
sa.Column('id', sa.Uuid(), nullable=False),
|
||||
sa.Column('candidate_email', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('candidate_name', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('candidate_phone', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('job_post_id', sa.Uuid(), nullable=True),
|
||||
sa.Column('full_text', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('current_company', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('user_id', sa.Uuid(), nullable=True),
|
||||
sa.Column('platform', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('created_by', sa.Uuid(), nullable=True),
|
||||
sa.Column('experience', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('status', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), nullable=False),
|
||||
sa.ForeignKeyConstraint(['created_by'], ['app.users.id'], name=op.f('fk_manual_upload_candidate_created_by_users')),
|
||||
sa.ForeignKeyConstraint(['job_post_id'], ['app.job_posts.id'], name=op.f('fk_manual_upload_candidate_job_post_id_job_posts')),
|
||||
sa.ForeignKeyConstraint(['user_id'], ['app.users.id'], name=op.f('fk_manual_upload_candidate_user_id_users')),
|
||||
sa.PrimaryKeyConstraint('id', name=op.f('pk_manual_upload_candidate')),
|
||||
schema='app'
|
||||
)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_table('manual_upload_candidate', schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
"""auto
|
||||
|
||||
Revision ID: 1a7c0e30aaab
|
||||
Revises: 4b34909ae551
|
||||
Create Date: 2026-08-12 08:17:21.212665+00:00
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel # SQLModel renders AutoString() into migrations but adds no import
|
||||
|
||||
|
||||
revision: str = '1a7c0e30aaab'
|
||||
down_revision: Union[str, None] = '4b34909ae551'
|
||||
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.add_column('manual_upload_candidate', sa.Column('referral_by', sqlmodel.sql.sqltypes.AutoString(), server_default='', nullable=False), schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('manual_upload_candidate', 'referral_by', schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
"""auto
|
||||
|
||||
Revision ID: 6ec5e105dce3
|
||||
Revises: 1a7c0e30aaab
|
||||
Create Date: 2026-08-12 08:45:01.957310+00:00
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel # SQLModel renders AutoString() into migrations but adds no import
|
||||
|
||||
|
||||
revision: str = '6ec5e105dce3'
|
||||
down_revision: Union[str, None] = '1a7c0e30aaab'
|
||||
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.add_column('manual_upload_candidate', sa.Column('file_name', sqlmodel.sql.sqltypes.AutoString(), server_default='', nullable=False), schema='app')
|
||||
op.add_column('manual_upload_candidate', sa.Column('file_path', sqlmodel.sql.sqltypes.AutoString(), server_default='', nullable=False), schema='app')
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('manual_upload_candidate', 'file_path', schema='app')
|
||||
op.drop_column('manual_upload_candidate', 'file_name', schema='app')
|
||||
# ### end Alembic commands ###
|
||||
Loading…
Reference in New Issue