1 """Add agents and work queues
2
3 Revision ID: 7c91cb86dc4e
4 Revises: 619bea85701a
5 Create Date: 2022-02-17 15:14:16.697816
6
7 """
8
9 import sqlalchemy as sa 1 ctx 1a
10 from alembic import op 1 ctx 1a
11
12 import prefect 1 ctx 1a
13
14 # revision identifiers, used by Alembic.
15 revision = "7c91cb86dc4e" 1 ctx 1a
16 down_revision = "619bea85701a" 1 ctx 1a
17 branch_labels = None 1 ctx 1a
18 depends_on = None 1 ctx 1a
19
20
21 def upgrade ( ) : 1 ctx 1a
22 op . create_table ( 1 ctx 1a
23 "work_queue" ,
24 sa . Column (
25 "id" ,
26 prefect . server . utilities . database . UUID ( ) ,
27 server_default = sa . text (
28 "(\n (\n lower(hex(randomblob(4))) \n || '-' \n "
29 " || lower(hex(randomblob(2))) \n || '-4' \n ||"
30 " substr(lower(hex(randomblob(2))),2) \n || '-' \n ||"
31 " substr('89ab',abs(random()) % 4 + 1, 1) \n ||"
32 " substr(lower(hex(randomblob(2))),2) \n || '-' \n ||"
33 " lower(hex(randomblob(6)))\n )\n )"
34 ) ,
35 nullable = False ,
36 ) ,
37 sa . Column (
38 "created" ,
39 prefect . server . utilities . database . Timestamp ( timezone = True ) ,
40 server_default = sa . text ( "(strftime('%Y-%m-%d %H:%M:%f000', 'now'))" ) ,
41 nullable = False ,
42 ) ,
43 sa . Column (
44 "updated" ,
45 prefect . server . utilities . database . Timestamp ( timezone = True ) ,
46 server_default = sa . text ( "(strftime('%Y-%m-%d %H:%M:%f000', 'now'))" ) ,
47 nullable = False ,
48 ) ,
49 sa . Column ( "name" , sa . String ( ) , nullable = False ) ,
50 sa . Column (
51 "filter" ,
52 prefect . server . utilities . database . Pydantic (
53 prefect . server . schemas . core . QueueFilter
54 ) ,
55 server_default = "{}" ,
56 nullable = False ,
57 ) ,
58 sa . Column ( "description" , sa . String ( ) , server_default = "" , nullable = False ) ,
59 sa . Column ( "is_paused" , sa . Boolean ( ) , server_default = "0" , nullable = False ) ,
60 sa . Column ( "concurrency_limit" , sa . Integer ( ) , nullable = True ) ,
61 sa . PrimaryKeyConstraint ( "id" , name = op . f ( "pk_work_queue" ) ) ,
62 sa . UniqueConstraint ( "name" , name = op . f ( "uq_work_queue__name" ) ) ,
63 )
64 op . create_index ( 1 ctx 1a
65 op . f ( "ix_work_queue__updated" ) , "work_queue" , [ "updated" ] , unique = False
66 )
67 op . create_table ( 1 ctx 1a
68 "agent" ,
69 sa . Column (
70 "id" ,
71 prefect . server . utilities . database . UUID ( ) ,
72 server_default = sa . text (
73 "(\n (\n lower(hex(randomblob(4))) \n || '-' \n "
74 " || lower(hex(randomblob(2))) \n || '-4' \n ||"
75 " substr(lower(hex(randomblob(2))),2) \n || '-' \n ||"
76 " substr('89ab',abs(random()) % 4 + 1, 1) \n ||"
77 " substr(lower(hex(randomblob(2))),2) \n || '-' \n ||"
78 " lower(hex(randomblob(6)))\n )\n )"
79 ) ,
80 nullable = False ,
81 ) ,
82 sa . Column (
83 "created" ,
84 prefect . server . utilities . database . Timestamp ( timezone = True ) ,
85 server_default = sa . text ( "(strftime('%Y-%m-%d %H:%M:%f000', 'now'))" ) ,
86 nullable = False ,
87 ) ,
88 sa . Column (
89 "updated" ,
90 prefect . server . utilities . database . Timestamp ( timezone = True ) ,
91 server_default = sa . text ( "(strftime('%Y-%m-%d %H:%M:%f000', 'now'))" ) ,
92 nullable = False ,
93 ) ,
94 sa . Column ( "name" , sa . String ( ) , nullable = False ) ,
95 sa . Column (
96 "last_activity_time" ,
97 prefect . server . utilities . database . Timestamp ( timezone = True ) ,
98 server_default = sa . text ( "(strftime('%Y-%m-%d %H:%M:%f000', 'now'))" ) ,
99 nullable = False ,
100 ) ,
101 sa . Column (
102 "work_queue_id" , prefect . server . utilities . database . UUID ( ) , nullable = False
103 ) ,
104 sa . ForeignKeyConstraint (
105 [ "work_queue_id" ] ,
106 [ "work_queue.id" ] ,
107 name = op . f ( "fk_agent__work_queue_id__work_queue" ) ,
108 ) ,
109 sa . PrimaryKeyConstraint ( "id" , name = op . f ( "pk_agent" ) ) ,
110 sa . UniqueConstraint ( "name" , name = op . f ( "uq_agent__name" ) ) ,
111 )
112 op . create_index ( op . f ( "ix_agent__updated" ) , "agent" , [ "updated" ] , unique = False ) 1 ctx 1a
113 op . create_index ( 1 ctx 1a
114 op . f ( "ix_agent__work_queue_id" ) , "agent" , [ "work_queue_id" ] , unique = False
115 )
116
117
118 def downgrade ( ) : 1 ctx 1a
119 op . drop_index ( op . f ( "ix_agent__work_queue_id" ) , table_name = "agent" )
120 op . drop_index ( op . f ( "ix_agent__updated" ) , table_name = "agent" )
121 op . drop_table ( "agent" )
122 op . drop_index ( op . f ( "ix_work_queue__updated" ) , table_name = "work_queue" )
123 op . drop_table ( "work_queue" )