|
@@ -0,0 +1,232 @@
|
|
|
+# Generated by Django 4.2.6 on 2023-10-20 01:22
|
|
|
+
|
|
|
+from django.conf import settings
|
|
|
+import django.contrib.postgres.indexes
|
|
|
+import django.contrib.postgres.search
|
|
|
+from django.db import migrations, models
|
|
|
+import django.db.models.deletion
|
|
|
+import psqlextra.backend.migrations.operations.add_default_partition
|
|
|
+import psqlextra.backend.migrations.operations.create_partitioned_model
|
|
|
+import psqlextra.manager.manager
|
|
|
+import psqlextra.models.partitioned
|
|
|
+import psqlextra.types
|
|
|
+import uuid
|
|
|
+
|
|
|
+
|
|
|
+class Migration(migrations.Migration):
|
|
|
+ initial = True
|
|
|
+
|
|
|
+ dependencies = [
|
|
|
+ ("issues", "0013_alter_comment_options_alter_issue_unique_together_and_more"),
|
|
|
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
|
+ ("projects", "0013_merge_20231017_1350"),
|
|
|
+ ]
|
|
|
+
|
|
|
+ operations = [
|
|
|
+ migrations.CreateModel(
|
|
|
+ name="Comment",
|
|
|
+ fields=[
|
|
|
+ (
|
|
|
+ "id",
|
|
|
+ models.BigAutoField(
|
|
|
+ auto_created=True,
|
|
|
+ primary_key=True,
|
|
|
+ serialize=False,
|
|
|
+ verbose_name="ID",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ("created", models.DateTimeField(auto_now_add=True)),
|
|
|
+ ("text", models.TextField(blank=True, null=True)),
|
|
|
+ (
|
|
|
+ "issue",
|
|
|
+ models.ForeignKey(
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
+ related_name="comments",
|
|
|
+ to="issues.issue",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ (
|
|
|
+ "user",
|
|
|
+ models.ForeignKey(
|
|
|
+ null=True,
|
|
|
+ on_delete=django.db.models.deletion.SET_NULL,
|
|
|
+ related_name="+",
|
|
|
+ to=settings.AUTH_USER_MODEL,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ "ordering": ("-created",),
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name="Issue",
|
|
|
+ fields=[
|
|
|
+ (
|
|
|
+ "id",
|
|
|
+ models.BigAutoField(
|
|
|
+ auto_created=True,
|
|
|
+ primary_key=True,
|
|
|
+ serialize=False,
|
|
|
+ verbose_name="ID",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ("created", models.DateTimeField(auto_now_add=True)),
|
|
|
+ ("culprit", models.CharField(blank=True, max_length=1024, null=True)),
|
|
|
+ ("is_public", models.BooleanField(default=False)),
|
|
|
+ (
|
|
|
+ "level",
|
|
|
+ models.PositiveSmallIntegerField(
|
|
|
+ choices=[
|
|
|
+ (0, "sample"),
|
|
|
+ (1, "debug"),
|
|
|
+ (2, "info"),
|
|
|
+ (3, "warning"),
|
|
|
+ (4, "error"),
|
|
|
+ (5, "fatal"),
|
|
|
+ ],
|
|
|
+ default=4,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ("title", models.CharField(max_length=255)),
|
|
|
+ (
|
|
|
+ "type",
|
|
|
+ models.PositiveSmallIntegerField(
|
|
|
+ choices=[(0, "default"), (1, "error"), (2, "csp")], default=0
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ (
|
|
|
+ "status",
|
|
|
+ models.PositiveSmallIntegerField(
|
|
|
+ choices=[(0, "unresolved"), (1, "resolved"), (2, "ignored")],
|
|
|
+ default=0,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ("short_id", models.PositiveIntegerField(null=True)),
|
|
|
+ (
|
|
|
+ "project",
|
|
|
+ models.ForeignKey(
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
+ related_name="issues",
|
|
|
+ to="projects.project",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ psqlextra.backend.migrations.operations.create_partitioned_model.PostgresCreatePartitionedModel(
|
|
|
+ name="IssueEvent",
|
|
|
+ fields=[
|
|
|
+ (
|
|
|
+ "id",
|
|
|
+ models.UUIDField(
|
|
|
+ default=uuid.uuid4,
|
|
|
+ editable=False,
|
|
|
+ primary_key=True,
|
|
|
+ serialize=False,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ (
|
|
|
+ "type",
|
|
|
+ models.PositiveSmallIntegerField(
|
|
|
+ choices=[(0, "default"), (1, "error"), (2, "csp")], default=0
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ("created", models.DateTimeField(auto_now_add=True)),
|
|
|
+ ("data", models.JSONField()),
|
|
|
+ (
|
|
|
+ "issue",
|
|
|
+ models.ForeignKey(
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
+ to="issue_events.issue",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ "abstract": False,
|
|
|
+ "base_manager_name": "objects",
|
|
|
+ },
|
|
|
+ partitioning_options={
|
|
|
+ "method": psqlextra.types.PostgresPartitioningMethod["RANGE"],
|
|
|
+ "key": ["created"],
|
|
|
+ },
|
|
|
+ bases=(psqlextra.models.partitioned.PostgresPartitionedModel,),
|
|
|
+ managers=[
|
|
|
+ ("objects", psqlextra.manager.manager.PostgresManager()),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ psqlextra.backend.migrations.operations.add_default_partition.PostgresAddDefaultPartition(
|
|
|
+ model_name="IssueEvent",
|
|
|
+ name="default",
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name="IssueHash",
|
|
|
+ fields=[
|
|
|
+ (
|
|
|
+ "id",
|
|
|
+ models.BigAutoField(
|
|
|
+ auto_created=True,
|
|
|
+ primary_key=True,
|
|
|
+ serialize=False,
|
|
|
+ verbose_name="ID",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ("value", models.UUIDField(db_index=True)),
|
|
|
+ (
|
|
|
+ "issue",
|
|
|
+ models.ForeignKey(
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
+ related_name="hashes",
|
|
|
+ to="issues.issue",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ (
|
|
|
+ "project",
|
|
|
+ models.ForeignKey(
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
+ related_name="+",
|
|
|
+ to="projects.project",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name="IssueStats",
|
|
|
+ fields=[
|
|
|
+ (
|
|
|
+ "issue",
|
|
|
+ models.OneToOneField(
|
|
|
+ on_delete=django.db.models.deletion.CASCADE,
|
|
|
+ primary_key=True,
|
|
|
+ serialize=False,
|
|
|
+ to="issue_events.issue",
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ (
|
|
|
+ "search_vector",
|
|
|
+ django.contrib.postgres.search.SearchVectorField(
|
|
|
+ editable=False, null=True
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ("search_vector_created", models.DateTimeField(auto_now_add=True)),
|
|
|
+ ("count", models.PositiveIntegerField(default=1, editable=False)),
|
|
|
+ ("last_seen", models.DateTimeField(auto_now_add=True, db_index=True)),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ "indexes": [
|
|
|
+ django.contrib.postgres.indexes.GinIndex(
|
|
|
+ fields=["search_vector"], name="issue_event_search__0754e8_gin"
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ migrations.AddConstraint(
|
|
|
+ model_name="issuehash",
|
|
|
+ constraint=models.UniqueConstraint(
|
|
|
+ fields=("project", "value"), name="issue hash project"
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ migrations.AlterUniqueTogether(
|
|
|
+ name="issue",
|
|
|
+ unique_together={("project", "short_id")},
|
|
|
+ ),
|
|
|
+ ]
|