Mercurial > libervia-backend
annotate libervia/backend/memory/migration/versions/2ab01aa1f686_create_table_for_notifications.py @ 4242:8acf46ed7f36
frontends: remote control implementation:
This is the frontends common part of remote control implementation. It handle the creation
of WebRTC session, and management of inputs. For now the reception use freedesktop.org
Desktop portal, and works mostly with Wayland based Desktop Environments.
rel 436
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 11 May 2024 13:52:43 +0200 |
parents | 02f0adc745c6 |
children | 0d7bb4df2343 |
rev | line source |
---|---|
4130
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 """create table for notifications |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 Revision ID: 2ab01aa1f686 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 Revises: 4b002773cf92 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
5 Create Date: 2023-10-16 12:11:43.507295 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 """ |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 from alembic import op |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 import sqlalchemy as sa |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # revision identifiers, used by Alembic. |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 revision = '2ab01aa1f686' |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 down_revision = '4b002773cf92' |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 branch_labels = None |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 depends_on = None |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 def upgrade(): |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 op.create_table('notifications', |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 sa.Column('timestamp', sa.Float(), nullable=False), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 sa.Column('expire_at', sa.Float(), nullable=True), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 sa.Column('profile_id', sa.Integer(), nullable=True), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 sa.Column('type', sa.Enum('chat', 'blog', 'calendar', 'file', 'call', 'service', 'other', name='notificationtype'), nullable=False), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 sa.Column('title', sa.Text(), nullable=True), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 sa.Column('body_plain', sa.Text(), nullable=False), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 sa.Column('body_rich', sa.Text(), nullable=True), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 sa.Column('requires_action', sa.Boolean(), nullable=True), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 sa.Column('priority', sa.Integer(), nullable=True), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
31 sa.Column('extra_data', sa.JSON(), nullable=True), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
32 sa.Column('status', sa.Enum('new', 'read', name='notificationstatus'), nullable=True), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
33 sa.ForeignKeyConstraint(['profile_id'], ['profiles.id'], name=op.f('fk_notifications_profile_id_profiles'), ondelete='CASCADE'), |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
34 sa.PrimaryKeyConstraint('id', name=op.f('pk_notifications')) |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
35 ) |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
36 with op.batch_alter_table('notifications', schema=None) as batch_op: |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
37 batch_op.create_index(batch_op.f('ix_notifications_profile_id'), ['profile_id'], unique=False) |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
38 batch_op.create_index('notifications_profile_id_status', ['profile_id', 'status'], unique=False) |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
39 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
40 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
41 def downgrade(): |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
42 with op.batch_alter_table('notifications', schema=None) as batch_op: |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
43 batch_op.drop_index('notifications_profile_id_status') |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
44 batch_op.drop_index(batch_op.f('ix_notifications_profile_id')) |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
45 |
02f0adc745c6
core: notifications implementation, first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
46 op.drop_table('notifications') |