-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
/
0619_monitors_migrate_is_muted.py
44 lines (35 loc) · 1.83 KB
/
0619_monitors_migrate_is_muted.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Generated by Django 3.2.23 on 2023-12-08 20:47
from django.db import migrations
from django.db.backends.base.schema import BaseDatabaseSchemaEditor
from django.db.migrations.state import StateApps
from sentry.new_migrations.migrations import CheckedMigration
from sentry.utils.query import RangeQuerySetWrapperWithProgressBar
def migrate_is_muted(apps: StateApps, schema_editor: BaseDatabaseSchemaEditor) -> None:
Monitor = apps.get_model("sentry", "Monitor")
query = Monitor.objects.filter(status=1)
# Query muted monitors
for monitor in RangeQuerySetWrapperWithProgressBar(query):
monitor.is_muted = True
monitor.save()
class Migration(CheckedMigration):
# This flag is used to mark that a migration shouldn't be automatically run in production. For
# the most part, this should only be used for operations where it's safe to run the migration
# after your code has deployed. So this should not be used for most operations that alter the
# schema of a table.
# Here are some things that make sense to mark as post deployment:
# - Large data migrations. Typically we want these to be run manually by ops so that they can
# be monitored and not block the deploy for a long period of time while they run.
# - Adding indexes to large tables. Since this can take a long time, we'd generally prefer to
# have ops run this and not block the deploy. Note that while adding an index is a schema
# change, it's completely safe to run the operation after the code has deployed.
is_post_deployment = False
dependencies = [
("sentry", "0618_drop_event_user_id_from_userreport_table_step_2"),
]
operations = [
migrations.RunPython(
migrate_is_muted,
migrations.RunPython.noop,
hints={"tables": ["sentry_monitor"]},
),
]