Coverage for /usr/local/lib/python3.12/site-packages/prefect/server/database/_migrations/versions/sqlite/2025_03_19_145018_bbca16f6f218_create_new_deployment_version_table.py: 65%

26 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-12-05 11:21 +0000

1"""Create new deployment version table 

2 

3Revision ID: bbca16f6f218 

4Revises: 3457c6ca2360 

5Create Date: 2025-03-19 14:50:18.927635 

6 

7""" 

8 

9import sqlalchemy as sa 1a

10from alembic import op 1a

11 

12import prefect 1a

13 

14# revision identifiers, used by Alembic. 

15revision = "bbca16f6f218" 1a

16down_revision = "3457c6ca2360" 1a

17branch_labels = None 1a

18depends_on = None 1a

19 

20 

21def upgrade(): 1a

22 op.create_table( 1a

23 "deployment_version", 

24 sa.Column( 

25 "deployment_id", 

26 prefect.server.utilities.database.UUID(), 

27 nullable=False, 

28 ), 

29 sa.Column("branch", sa.String(), nullable=True), 

30 sa.Column( 

31 "version_info", 

32 prefect.server.utilities.database.JSON(astext_type=sa.Text()), 

33 server_default="{}", 

34 nullable=False, 

35 ), 

36 sa.Column("description", sa.Text(), nullable=True), 

37 sa.Column( 

38 "tags", 

39 prefect.server.utilities.database.JSON(astext_type=sa.Text()), 

40 server_default="[]", 

41 nullable=False, 

42 ), 

43 sa.Column( 

44 "labels", 

45 prefect.server.utilities.database.JSON(astext_type=sa.Text()), 

46 nullable=True, 

47 ), 

48 sa.Column("entrypoint", sa.String(), nullable=True), 

49 sa.Column( 

50 "pull_steps", 

51 prefect.server.utilities.database.JSON(astext_type=sa.Text()), 

52 nullable=True, 

53 ), 

54 sa.Column( 

55 "parameters", 

56 prefect.server.utilities.database.JSON(astext_type=sa.Text()), 

57 server_default="{}", 

58 nullable=False, 

59 ), 

60 sa.Column( 

61 "parameter_openapi_schema", 

62 prefect.server.utilities.database.JSON(astext_type=sa.Text()), 

63 nullable=True, 

64 ), 

65 sa.Column( 

66 "enforce_parameter_schema", sa.Boolean(), server_default="0", nullable=False 

67 ), 

68 sa.Column( 

69 "work_queue_id", 

70 prefect.server.utilities.database.UUID(), 

71 nullable=True, 

72 ), 

73 sa.Column("work_queue_name", sa.String(), nullable=True), 

74 sa.Column( 

75 "infra_overrides", 

76 prefect.server.utilities.database.JSON(astext_type=sa.Text()), 

77 server_default="{}", 

78 nullable=False, 

79 ), 

80 sa.Column( 

81 "id", 

82 prefect.server.utilities.database.UUID(), 

83 server_default=sa.text("(GEN_RANDOM_UUID())"), 

84 nullable=False, 

85 ), 

86 sa.Column( 

87 "created", 

88 prefect.server.utilities.database.Timestamp(timezone=True), 

89 server_default=sa.text("CURRENT_TIMESTAMP"), 

90 nullable=False, 

91 ), 

92 sa.Column( 

93 "updated", 

94 prefect.server.utilities.database.Timestamp(timezone=True), 

95 server_default=sa.text("CURRENT_TIMESTAMP"), 

96 nullable=False, 

97 ), 

98 sa.ForeignKeyConstraint( 

99 ["deployment_id"], 

100 ["deployment.id"], 

101 name=op.f("fk_deployment_version__deployment_id__deployment"), 

102 ondelete="CASCADE", 

103 ), 

104 sa.ForeignKeyConstraint( 

105 ["work_queue_id"], 

106 ["work_queue.id"], 

107 name=op.f("fk_deployment_version__work_queue_id__work_queue"), 

108 ondelete="SET NULL", 

109 ), 

110 sa.PrimaryKeyConstraint("id", name=op.f("pk_deployment_version")), 

111 ) 

112 op.create_index( 1a

113 op.f("ix_deployment_version__deployment_id"), 

114 "deployment_version", 

115 ["deployment_id"], 

116 unique=False, 

117 ) 

118 op.create_index( 1a

119 op.f("ix_deployment_version__updated"), 

120 "deployment_version", 

121 ["updated"], 

122 unique=False, 

123 ) 

124 op.create_index( 1a

125 op.f("ix_deployment_version__work_queue_id"), 

126 "deployment_version", 

127 ["work_queue_id"], 

128 unique=False, 

129 ) 

130 op.create_index( 1a

131 op.f("ix_deployment_version__work_queue_name"), 

132 "deployment_version", 

133 ["work_queue_name"], 

134 unique=False, 

135 ) 

136 op.create_index( 1a

137 "uq_deployment_version__deployment__branch", 

138 "deployment_version", 

139 ["deployment_id", "branch"], 

140 unique=True, 

141 ) 

142 

143 ## alter deployment table to store references to new table 

144 op.add_column( 1a

145 "deployment", 

146 sa.Column( 

147 "version_id", 

148 prefect.server.utilities.database.UUID(), 

149 nullable=True, 

150 ), 

151 ) 

152 op.create_index( 1a

153 op.f("ix_deployment__version_id"), 

154 "deployment", 

155 ["version_id"], 

156 unique=False, 

157 ) 

158 

159 

160def downgrade(): 1a

161 with op.batch_alter_table("deployment_version", schema=None) as batch_op: 

162 batch_op.drop_index("uq_deployment_version__deployment__branch") 

163 batch_op.drop_index(batch_op.f("ix_deployment_version__work_queue_name")) 

164 batch_op.drop_index(batch_op.f("ix_deployment_version__work_queue_id")) 

165 batch_op.drop_index(batch_op.f("ix_deployment_version__updated")) 

166 batch_op.drop_index(batch_op.f("ix_deployment_version__deployment_id")) 

167 

168 # deployment table changes 

169 op.drop_index(op.f("ix_deployment__version_id"), table_name="deployment") 

170 op.drop_column("deployment", "version_id") 

171 

172 op.drop_table("deployment_version")