# What this PR does This PR adds [django-migration-linter](https://github.com/3YOURMIND/django-migration-linter) to keep database migrations backwards compatible - we can automatically run migrations and they are zero-downtime, e.g. old code can work with the migrated database - we can run and rollback migrations without worrying about data safety - OnCall is deployed to the multiple environments core team is not able to control See [django-migration-linter checklist](https://github.com/3YOURMIND/django-migration-linter/blob/main/docs/incompatibilities.md) for the common mistakes and best practices ## Which issue(s) this PR fixes ## Checklist - [ ] Tests updated - [ ] Documentation added - [ ] `CHANGELOG.md` updated --------- Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
78 lines
4.4 KiB
Python
78 lines
4.4 KiB
Python
# Generated by Django 3.2.5 on 2022-05-31 14:46
|
|
|
|
import apps.telegram.models.connectors.channel
|
|
import django.core.validators
|
|
from django.db import migrations, models
|
|
import django.db.models.deletion
|
|
import uuid
|
|
import django_migration_linter as linter
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
('user_management', '0001_squashed_initial'),
|
|
('alerts', '0001_squashed_initial'),
|
|
]
|
|
|
|
operations = [
|
|
linter.IgnoreMigration(),
|
|
migrations.CreateModel(
|
|
name='TelegramVerificationCode',
|
|
fields=[
|
|
('uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
|
('datetime', models.DateTimeField(auto_now_add=True)),
|
|
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='telegram_verification_code', to='user_management.user')),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name='TelegramToOrganizationConnector',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('public_primary_key', models.CharField(default=apps.telegram.models.connectors.channel.generate_public_primary_key_for_telegram_to_at_connector, max_length=20, unique=True, validators=[django.core.validators.MinLengthValidator(13)])),
|
|
('is_default_channel', models.BooleanField(default=False, null=True)),
|
|
('channel_chat_id', models.CharField(max_length=100, unique=True)),
|
|
('channel_name', models.CharField(default=None, max_length=100, null=True)),
|
|
('discussion_group_chat_id', models.CharField(max_length=100, unique=True)),
|
|
('discussion_group_name', models.CharField(default=None, max_length=100, null=True)),
|
|
('datetime', models.DateTimeField(auto_now_add=True)),
|
|
('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='telegram_channel', to='user_management.organization')),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name='TelegramMessage',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('message_id', models.IntegerField()),
|
|
('chat_id', models.CharField(max_length=100)),
|
|
('message_type', models.IntegerField(choices=[(0, 'Alert group message'), (1, 'Actions message'), (2, 'Log message'), (3, 'Alert can not be rendered'), (4, 'Alert group message with action buttons and incident log'), (5, 'Link to channel message'), (6, 'Link to channel message without title')])),
|
|
('discussion_group_message_id', models.IntegerField(default=None, null=True)),
|
|
('edit_task_id', models.CharField(default=None, max_length=100, null=True)),
|
|
('alert_group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='telegram_messages', to='alerts.alertgroup')),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name='TelegramChannelVerificationCode',
|
|
fields=[
|
|
('uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
|
('datetime', models.DateTimeField(auto_now_add=True)),
|
|
('author', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='user_management.user')),
|
|
('organization', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='telegram_verification_code', to='user_management.organization')),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name='TelegramToUserConnector',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('telegram_chat_id', models.BigIntegerField()),
|
|
('telegram_nick_name', models.CharField(default=None, max_length=100, null=True)),
|
|
('datetime', models.DateTimeField(auto_now_add=True)),
|
|
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='telegram_connection', to='user_management.user')),
|
|
],
|
|
options={
|
|
'unique_together': {('user', 'telegram_chat_id')},
|
|
},
|
|
),
|
|
]
|