0001_initial.py 4.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # Generated by Django 4.2.7 on 2023-11-08 14:45
  2. from django.conf import settings
  3. import django.contrib.postgres.indexes
  4. import django.contrib.postgres.search
  5. from django.db import migrations, models
  6. import django.db.models.deletion
  7. import psqlextra.manager.manager
  8. import uuid
  9. class Migration(migrations.Migration):
  10. initial = True
  11. dependencies = [
  12. ('projects', '0013_merge_20231017_1350'),
  13. migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  14. ]
  15. operations = [
  16. migrations.CreateModel(
  17. name='Issue',
  18. fields=[
  19. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  20. ('created', models.DateTimeField(auto_now_add=True)),
  21. ('culprit', models.CharField(blank=True, max_length=1024, null=True)),
  22. ('is_public', models.BooleanField(default=False)),
  23. ('level', models.PositiveSmallIntegerField(choices=[(0, 'sample'), (1, 'debug'), (2, 'info'), (3, 'warning'), (4, 'error'), (5, 'fatal')], default=4)),
  24. ('title', models.CharField(max_length=255)),
  25. ('type', models.PositiveSmallIntegerField(choices=[(0, 'default'), (1, 'error'), (2, 'csp')], default=0)),
  26. ('status', models.PositiveSmallIntegerField(choices=[(0, 'unresolved'), (1, 'resolved'), (2, 'ignored')], default=0)),
  27. ('short_id', models.PositiveIntegerField(null=True)),
  28. ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='issues', to='projects.project')),
  29. ],
  30. ),
  31. migrations.CreateModel(
  32. name='IssueHash',
  33. fields=[
  34. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  35. ('value', models.UUIDField(db_index=True)),
  36. ('issue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='hashes', to='issue_events.issue')),
  37. ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='projects.project')),
  38. ],
  39. ),
  40. migrations.CreateModel(
  41. name='IssueEvent',
  42. fields=[
  43. ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
  44. ('type', models.PositiveSmallIntegerField(choices=[(0, 'default'), (1, 'error'), (2, 'csp')], default=0)),
  45. ('date_created', models.DateTimeField(auto_now_add=True, help_text='Time at which event happened')),
  46. ('date_received', models.DateTimeField(auto_now_add=True, help_text='Time at which GlitchTip accepted event')),
  47. ('data', models.JSONField()),
  48. ('issue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='issue_events.issue')),
  49. ],
  50. options={
  51. 'abstract': False,
  52. 'base_manager_name': 'objects',
  53. },
  54. managers=[
  55. ('objects', psqlextra.manager.manager.PostgresManager()),
  56. ],
  57. ),
  58. migrations.CreateModel(
  59. name='Comment',
  60. fields=[
  61. ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  62. ('created', models.DateTimeField(auto_now_add=True)),
  63. ('text', models.TextField(blank=True, null=True)),
  64. ('issue', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comments', to='issue_events.issue')),
  65. ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
  66. ],
  67. options={
  68. 'ordering': ('-created',),
  69. },
  70. ),
  71. migrations.CreateModel(
  72. name='IssueStats',
  73. fields=[
  74. ('issue', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='issue_events.issue')),
  75. ('search_vector', django.contrib.postgres.search.SearchVectorField(editable=False, null=True)),
  76. ('search_vector_created', models.DateTimeField(auto_now_add=True)),
  77. ('count', models.PositiveIntegerField(default=1, editable=False)),
  78. ('last_seen', models.DateTimeField(auto_now_add=True, db_index=True)),
  79. ],
  80. options={
  81. 'indexes': [django.contrib.postgres.indexes.GinIndex(fields=['search_vector'], name='issue_event_search__0754e8_gin')],
  82. },
  83. ),
  84. migrations.AddConstraint(
  85. model_name='issuehash',
  86. constraint=models.UniqueConstraint(fields=('project', 'value'), name='issue hash project'),
  87. ),
  88. migrations.AlterUniqueTogether(
  89. name='issue',
  90. unique_together={('project', 'short_id')},
  91. ),
  92. ]