Browse Source

ref(dashboards): make column from Dashboard Permissions model nullable (#80589)

[#80140](https://github.com/getsentry/sentry/issues/80140)

Step 1 of removing `is_creator_only_editable` column from
`DashboardPermissions` Model by making it nullable

Co-authored-by: harshithadurai <harshi.durai@esentry.io>
Harshitha Durai 4 months ago
parent
commit
c492058f70

+ 1 - 1
migrations_lockfile.txt

@@ -10,7 +10,7 @@ hybridcloud: 0016_add_control_cacheversion
 nodestore: 0002_nodestore_no_dictfield
 remote_subscriptions: 0003_drop_remote_subscription
 replays: 0004_index_together
-sentry: 0786_drop_broadcasts_cta_column
+sentry: 0787_make_dashboard_perms_col_nullable
 social_auth: 0002_default_auto_field
 uptime: 0017_unique_on_timeout
 workflow_engine: 0011_action_updates

+ 33 - 0
src/sentry/migrations/0787_make_dashboard_perms_col_nullable.py

@@ -0,0 +1,33 @@
+# Generated by Django 5.1.1 on 2024-11-12 14:31
+
+from django.db import migrations, models
+
+from sentry.new_migrations.migrations import CheckedMigration
+
+
+class Migration(CheckedMigration):
+    # This flag is used to mark that a migration shouldn't be automatically run in production.
+    # 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 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
+    #   run this outside deployments so that we don't block them. Note that while adding an index
+    #   is a schema change, it's completely safe to run the operation after the code has deployed.
+    # Once deployed, run these manually via: https://develop.sentry.dev/database-migrations/#migration-deployment
+
+    is_post_deployment = False
+
+    dependencies = [
+        ("sentry", "0786_drop_broadcasts_cta_column"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="dashboardpermissions",
+            name="is_creator_only_editable",
+            field=models.BooleanField(default=False, null=True),
+        ),
+    ]

+ 1 - 1
src/sentry/models/dashboard_permissions.py

@@ -28,7 +28,7 @@ class DashboardPermissions(Model):
 
     __relocation_scope__ = RelocationScope.Organization
 
-    is_creator_only_editable = models.BooleanField(default=False)
+    is_creator_only_editable = models.BooleanField(default=False, null=True)
     is_editable_by_everyone = models.BooleanField(default=True)
     teams_with_edit_access = models.ManyToManyField(
         "sentry.Team", through=DashboardPermissionsTeam, blank=True