Browse Source

ref(sentryappavatar): Add color, remove avatar_type (#29936)

Colleen O'Rourke 3 years ago
parent
commit
e89a965bc0

+ 1 - 1
migrations_lockfile.txt

@@ -6,5 +6,5 @@ To resolve this, rebase against latest master and regenerate your migration. Thi
 will then be regenerated, and you should be able to merge without conflicts.
 
 nodestore: 0002_nodestore_no_dictfield
-sentry: 0246_incident_snapshots_remove_fks
+sentry: 0247_add_color_column
 social_auth: 0001_initial

+ 41 - 0
src/sentry/migrations/0247_add_color_column.py

@@ -0,0 +1,41 @@
+# Generated by Django 2.2.24 on 2021-11-11 00:50
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    # This flag is used to mark that a migration shouldn't be automatically run in
+    # production. We set this to True for operations that we think are risky and want
+    # someone from ops to run manually and monitor.
+    # General advice is that if in doubt, mark your migration as `is_dangerous`.
+    # Some things you should always mark as dangerous:
+    # - Large data migrations. Typically we want these to be run manually by ops so that
+    #   they can be monitored. Since data migrations will now hold a transaction open
+    #   this is even more important.
+    # - Adding columns to highly active tables, even ones that are NULL.
+    is_dangerous = False
+
+    # This flag is used to decide whether to run this migration in a transaction or not.
+    # By default we prefer to run in a transaction, but for migrations where you want
+    # to `CREATE INDEX CONCURRENTLY` this needs to be set to False. Typically you'll
+    # want to create an index concurrently when adding one to an existing table.
+    # You'll also usually want to set this to `False` if you're writing a data
+    # migration, since we don't want the entire migration to run in one long-running
+    # transaction.
+    atomic = True
+
+    dependencies = [
+        ("sentry", "0246_incident_snapshots_remove_fks"),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name="sentryappavatar",
+            name="avatar_type",
+        ),
+        migrations.AddField(
+            model_name="sentryappavatar",
+            name="color",
+            field=models.BooleanField(default=False),
+        ),
+    ]

+ 4 - 5
src/sentry/models/sentryappavatar.py

@@ -7,16 +7,15 @@ from . import AvatarBase
 
 class SentryAppAvatar(AvatarBase):
     """
-    A SentryAppAvatar associates a SentryApp with an avatar photo File
-    and contains the preferences for avatar type.
+    A SentryAppAvatar associates a SentryApp with a logo photo File
+    and specifies which type of logo it is.
     """
 
-    AVATAR_TYPES = ((0, "letter_avatar"), (1, "upload"))
-
     FILE_TYPE = "avatar.file"
 
     sentry_app = FlexibleForeignKey("sentry.SentryApp", unique=True, related_name="avatar")
-    avatar_type = models.PositiveSmallIntegerField(default=0, choices=AVATAR_TYPES)
+    color = models.BooleanField(default=False)
+    # e.g. issue linking logos will not have color
 
     class Meta:
         app_label = "sentry"