Skip to content

Commit 34eda49

Browse files
author
surguh
committed
feat: отвязка модели mailing от postgres типов
1 parent e4dad91 commit 34eda49

3 files changed

Lines changed: 28 additions & 8 deletions

File tree

devind_notifications/migrations/0001_initial.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Generated by Django 3.2.12 on 2022-02-09 23:14
22

3-
import django.contrib.postgres.fields
43
import django.db.models.deletion
54
from django.conf import settings
65
from django.db import migrations, models
@@ -49,11 +48,11 @@ class Migration(migrations.Migration):
4948
name='Mailing',
5049
fields=[
5150
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
52-
('dispatchers', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=30), default=devind_notifications.models.mailing.default_dispatchers, help_text='Средства отправки', size=None)),
51+
('dispatchers', models.JSONField(default=list, help_text='Массив прикрепленных файлов', null=True)),
5352
('address', models.EmailField(default=devind_notifications.models.mailing.mailing_default_email, help_text='Адрес отправки', max_length=254)),
5453
('header', models.CharField(help_text='Заголовок сообщения', max_length=256)),
5554
('text', models.TextField(help_text='Текст сообщения')),
56-
('attachments', django.contrib.postgres.fields.ArrayField(base_field=models.FileField(help_text='Файлы', max_length=1024, upload_to=devind_notifications.models.mailing.attachments_directory_path), help_text='Массив прикрепленных файлов', null=True, size=None)),
55+
('attachments', models.JSONField(default=devind_notifications.models.mailing.default_dispatchers, help_text='Средства отправки')),
5756
('created_at', models.DateTimeField(auto_now_add=True, help_text='Дата добавления')),
5857
('user', models.ForeignKey(help_text='Пользователь', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
5958
],
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Generated by Django 3.2.12 on 2022-04-01 08:55
2+
3+
from django.db import migrations
4+
5+
6+
def forward(_, schema_editor): # Чтобы не править руками боевые бд
7+
if schema_editor.connection.vendor.startswith('postgres'):
8+
schema_editor.execute('alter table devind_notifications_mailing alter column dispatchers type jsonb using to_jsonb(dispatchers);')
9+
schema_editor.execute('alter table devind_notifications_mailing alter column attachments type jsonb using to_jsonb(attachments);')
10+
11+
12+
class Migration(migrations.Migration):
13+
14+
dependencies = [
15+
('devind_notifications', '0001_initial'),
16+
]
17+
18+
operations = [
19+
migrations.RunPython(forward, lambda *_: None)
20+
]

devind_notifications/models/mailing.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import importlib
22

33
from django.conf import settings
4-
from django.contrib.postgres.fields import ArrayField
4+
#from django.contrib.postgres.fields import ArrayField
55
from django.db import models
66

77

@@ -43,16 +43,17 @@ class AbstractMailing(models.Model):
4343
- TelegramDispatch - отправка по средства телеграмма
4444
"""
4545

46-
dispatchers = ArrayField(
47-
models.CharField(max_length=30),
46+
dispatchers = models.JSONField(
47+
#models.CharField(max_length=30),
4848
default=default_dispatchers,
4949
help_text='Средства отправки'
5050
)
5151
address = models.EmailField(default=mailing_default_email, help_text='Адрес отправки')
5252
header = models.CharField(max_length=256, help_text='Заголовок сообщения')
5353
text = models.TextField(help_text='Текст сообщения')
54-
attachments = ArrayField(
55-
models.FileField(upload_to=attachments_directory_path, max_length=1024, help_text='Файлы'),
54+
attachments = models.JSONField(
55+
#models.FileField(upload_to=attachments_directory_path, max_length=1024, help_text='Файлы'),
56+
default=list,
5657
help_text='Массив прикрепленных файлов',
5758
null=True
5859
)

0 commit comments

Comments
 (0)