forked from forks/microblog.pub
65 lines
2.9 KiB
Python
65 lines
2.9 KiB
Python
"""Allow activity forwarding
|
|
|
|
Revision ID: 93e36ff5c691
|
|
Revises: ba131b14c3a1
|
|
Create Date: 2022-07-06 09:03:57.656539
|
|
|
|
"""
|
|
import sqlalchemy as sa
|
|
from sqlalchemy.schema import CreateTable
|
|
|
|
from alembic import op
|
|
from app.database import engine
|
|
from app.models import OutgoingActivity
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = '93e36ff5c691'
|
|
down_revision = 'ba131b14c3a1'
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.create_index(op.f('ix_inbox_activity_object_ap_id'), 'inbox', ['activity_object_ap_id'], unique=False)
|
|
op.create_index(op.f('ix_inbox_ap_type'), 'inbox', ['ap_type'], unique=False)
|
|
op.create_index(op.f('ix_outbox_activity_object_ap_id'), 'outbox', ['activity_object_ap_id'], unique=False)
|
|
op.create_index(op.f('ix_outbox_ap_type'), 'outbox', ['ap_type'], unique=False)
|
|
# ### end Alembic commands ###
|
|
# XXX: cannot remove alter to make a column nullable, we have to drop/recreate it
|
|
create_statement = CreateTable(OutgoingActivity.__table__).compile(engine)
|
|
op.execute("DROP TABLE IF EXISTS outgoing_activity;")
|
|
op.execute(f"{create_statement};")
|
|
# Instead of this:
|
|
# op.add_column('outgoing_activity', sa.Column('inbox_object_id', sa.Integer(), nullable=True))
|
|
# op.alter_column('outgoing_activity', 'outbox_object_id',
|
|
# existing_type=sa.INTEGER(),
|
|
# nullable=True)
|
|
# op.create_foreign_key(None, 'outgoing_activity', 'inbox', ['inbox_object_id'], ['id'])
|
|
# op.create_foreign_key(None, 'outgoing_activity', 'outbox', ['outbox_object_id'], ['id'])
|
|
|
|
|
|
def downgrade() -> None:
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.drop_table("outgoing_activity")
|
|
op.create_table('outgoing_activity',
|
|
sa.Column('id', sa.Integer(), nullable=False),
|
|
sa.Column('created_at', sa.DateTime(timezone=True), nullable=False),
|
|
sa.Column('recipient', sa.String(), nullable=False),
|
|
sa.Column('outbox_object_id', sa.Integer(), nullable=False),
|
|
sa.Column('tries', sa.Integer(), nullable=False),
|
|
sa.Column('next_try', sa.DateTime(timezone=True), nullable=True),
|
|
sa.Column('last_try', sa.DateTime(timezone=True), nullable=True),
|
|
sa.Column('last_status_code', sa.Integer(), nullable=True),
|
|
sa.Column('last_response', sa.String(), nullable=True),
|
|
sa.Column('is_sent', sa.Boolean(), nullable=False),
|
|
sa.Column('is_errored', sa.Boolean(), nullable=False),
|
|
sa.Column('error', sa.String(), nullable=True),
|
|
sa.ForeignKeyConstraint(['outbox_object_id'], ['outbox.id'], ),
|
|
sa.PrimaryKeyConstraint('id')
|
|
)
|
|
op.drop_index(op.f('ix_outbox_ap_type'), table_name='outbox')
|
|
op.drop_index(op.f('ix_outbox_activity_object_ap_id'), table_name='outbox')
|
|
op.drop_index(op.f('ix_inbox_ap_type'), table_name='inbox')
|
|
op.drop_index(op.f('ix_inbox_activity_object_ap_id'), table_name='inbox')
|
|
# ### end Alembic commands ###
|