Add support for forwarding activities
This commit is contained in:
parent
9594cd3108
commit
8fbb48f671
7 changed files with 171 additions and 8 deletions
65
alembic/versions/93e36ff5c691_allow_activity_forwarding.py
Normal file
65
alembic/versions/93e36ff5c691_allow_activity_forwarding.py
Normal file
|
@ -0,0 +1,65 @@
|
|||
"""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 ###
|
Loading…
Add table
Add a link
Reference in a new issue