comparison sat/memory/migration/versions/8974efc51d22_create_tables_for_pubsub_caching.py @ 3594:d5116197e403

migration: script to create pubsub caching tables
author Goffi <goffi@goffi.org>
date Thu, 29 Jul 2021 22:50:57 +0200
parents
children
comparison
equal deleted inserted replaced
3593:cb8d0e8b917f 3594:d5116197e403
1 """create tables for Pubsub caching
2
3 Revision ID: 8974efc51d22
4 Revises: 602caf848068
5 Create Date: 2021-07-27 16:38:54.658212
6
7 """
8 from alembic import op
9 import sqlalchemy as sa
10 from sat.memory.sqla_mapping import JID, Xml
11
12
13 # revision identifiers, used by Alembic.
14 revision = '8974efc51d22'
15 down_revision = '602caf848068'
16 branch_labels = None
17 depends_on = None
18
19
20 def upgrade():
21 # ### commands auto generated by Alembic - please adjust! ###
22 op.create_table('pubsub_nodes',
23 sa.Column('id', sa.Integer(), nullable=False),
24 sa.Column('profile_id', sa.Integer(), nullable=True),
25 sa.Column('service', JID(), nullable=True),
26 sa.Column('name', sa.Text(), nullable=False),
27 sa.Column('subscribed', sa.Boolean(create_constraint=True, name='subscribed_bool'), nullable=False),
28 sa.Column('analyser', sa.Text(), nullable=True),
29 sa.Column('sync_state', sa.Enum('IN_PROGRESS', 'COMPLETED', 'ERROR', 'NO_SYNC', name='sync_state', create_constraint=True), nullable=True),
30 sa.Column('sync_state_updated', sa.Float(), nullable=False),
31 sa.Column('type', sa.Text(), nullable=True),
32 sa.Column('subtype', sa.Text(), nullable=True),
33 sa.Column('extra', sa.JSON(), nullable=True),
34 sa.ForeignKeyConstraint(['profile_id'], ['profiles.id'], name=op.f('fk_pubsub_nodes_profile_id_profiles'), ondelete='CASCADE'),
35 sa.PrimaryKeyConstraint('id', name=op.f('pk_pubsub_nodes')),
36 sa.UniqueConstraint('profile_id', 'service', 'name', name=op.f('uq_pubsub_nodes_profile_id'))
37 )
38 op.create_table('pubsub_items',
39 sa.Column('id', sa.Integer(), nullable=False),
40 sa.Column('node_id', sa.Integer(), nullable=False),
41 sa.Column('name', sa.Text(), nullable=False),
42 sa.Column('data', Xml(), nullable=False),
43 sa.Column('created', sa.DateTime(), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=False),
44 sa.Column('updated', sa.DateTime(), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=False),
45 sa.Column('parsed', sa.JSON(), nullable=True),
46 sa.ForeignKeyConstraint(['node_id'], ['pubsub_nodes.id'], name=op.f('fk_pubsub_items_node_id_pubsub_nodes'), ondelete='CASCADE'),
47 sa.PrimaryKeyConstraint('id', name=op.f('pk_pubsub_items')),
48 sa.UniqueConstraint('node_id', 'name', name=op.f('uq_pubsub_items_node_id'))
49 )
50 # ### end Alembic commands ###
51
52
53 def downgrade():
54 # ### commands auto generated by Alembic - please adjust! ###
55 op.drop_table('pubsub_items')
56 op.drop_table('pubsub_nodes')
57 # ### end Alembic commands ###