From 8cc237e7a3ad6c4554479782efe2e3a8d351172c Mon Sep 17 00:00:00 2001 From: Mike <22396211+Dresdn@users.noreply.github.com> Date: Wed, 22 Feb 2023 08:08:47 -0700 Subject: [PATCH 1/4] ci: check for missing migrations --- .pre-commit-config.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6a82e7d..958dfaf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,3 +15,13 @@ repos: - id: black language_version: python3 entry: black --target-version=py36 + +- repo: https://github.com/remastr/pre-commit-django-check-migrations + rev: v0.1.0 + hooks: + - id: check-migrations-created + args: + [ + --exec-command=poetry run python, + --manage-path=manage.py, + ] From f1831deafa961d3497aa9ddf3a357753f4182d3b Mon Sep 17 00:00:00 2001 From: Mike <22396211+Dresdn@users.noreply.github.com> Date: Wed, 22 Feb 2023 08:08:59 -0700 Subject: [PATCH 2/4] style: ignore string over-use in migrations files --- setup.cfg | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/setup.cfg b/setup.cfg index 2713480..50fa377 100644 --- a/setup.cfg +++ b/setup.cfg @@ -39,8 +39,9 @@ ignore = DAR203 per-file-ignores = - # Allow to have magic numbers inside migrations and wrong module names: - */migrations/*.py: WPS102, WPS114, WPS432 + # Allow to have magic numbers inside migrations, wrong module names, + # and string over-use: + */migrations/*.py: WPS102, WPS114, WPS226, WPS432 # Allow `__init__.py` with logic for configuration: test_project/settings.py: S105, WPS226, WPS407 tests/test_*.py: N806, S101, S404, S603, S607, WPS118, WPS226, WPS432, WPS442 From 8fbd18bf7910eeeeb83e8a00ccffb9eb3c046c16 Mon Sep 17 00:00:00 2001 From: Mike <22396211+Dresdn@users.noreply.github.com> Date: Wed, 22 Feb 2023 08:09:36 -0700 Subject: [PATCH 3/4] fix: generating migration for model text changes --- eav/migrations/0009_enchance_naming.py | 178 +++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 eav/migrations/0009_enchance_naming.py diff --git a/eav/migrations/0009_enchance_naming.py b/eav/migrations/0009_enchance_naming.py new file mode 100644 index 0000000..d8a2777 --- /dev/null +++ b/eav/migrations/0009_enchance_naming.py @@ -0,0 +1,178 @@ +from django.core.serializers.json import DjangoJSONEncoder +from django.db import migrations, models + +from eav.fields import CSVField + + +class Migration(migrations.Migration): + """Define verbose naming for models and fields.""" + + dependencies = [ + ('contenttypes', '0002_remove_content_type_name'), + ('eav', '0008_use_native_slugfield'), + ] + + operations = [ + migrations.AlterModelOptions( + name='attribute', + options={ + 'ordering': ['name'], + 'verbose_name': 'Attribute', + 'verbose_name_plural': 'Attributes', + }, + ), + migrations.AlterModelOptions( + name='enumgroup', + options={ + 'verbose_name': 'EnumGroup', + 'verbose_name_plural': 'EnumGroups', + }, + ), + migrations.AlterModelOptions( + name='enumvalue', + options={ + 'verbose_name': 'EnumValue', + 'verbose_name_plural': 'EnumValues', + }, + ), + migrations.AlterModelOptions( + name='value', + options={'verbose_name': 'Value', 'verbose_name_plural': 'Values'}, + ), + migrations.AlterField( + model_name='attribute', + name='entity_ct', + field=models.ManyToManyField( + blank=True, + to='contenttypes.contenttype', + verbose_name='Entity content type', + ), + ), + migrations.AlterField( + model_name='value', + name='entity_ct', + field=models.ForeignKey( + on_delete=models.deletion.PROTECT, + related_name='value_entities', + to='contenttypes.contenttype', + verbose_name='Entity ct', + ), + ), + migrations.AlterField( + model_name='value', + name='entity_id', + field=models.IntegerField( + blank=True, + null=True, + verbose_name='Entity id', + ), + ), + migrations.AlterField( + model_name='value', + name='entity_uuid', + field=models.UUIDField( + blank=True, + null=True, + verbose_name='Entity uuid', + ), + ), + migrations.AlterField( + model_name='value', + name='generic_value_ct', + field=models.ForeignKey( + blank=True, + null=True, + on_delete=models.deletion.PROTECT, + related_name='value_values', + to='contenttypes.contenttype', + verbose_name='Generic value content type', + ), + ), + migrations.AlterField( + model_name='value', + name='generic_value_id', + field=models.IntegerField( + blank=True, + null=True, + verbose_name='Generic value id', + ), + ), + migrations.AlterField( + model_name='value', + name='value_bool', + field=models.BooleanField( + blank=True, + null=True, + verbose_name='Value bool', + ), + ), + migrations.AlterField( + model_name='value', + name='value_csv', + field=CSVField( + blank=True, + default='', + null=True, + verbose_name='Value CSV', + ), + ), + migrations.AlterField( + model_name='value', + name='value_date', + field=models.DateTimeField( + blank=True, + null=True, + verbose_name='Value date', + ), + ), + migrations.AlterField( + model_name='value', + name='value_enum', + field=models.ForeignKey( + blank=True, + null=True, + on_delete=models.deletion.PROTECT, + related_name='eav_values', + to='eav.enumvalue', + verbose_name='Value enum', + ), + ), + migrations.AlterField( + model_name='value', + name='value_float', + field=models.FloatField( + blank=True, + null=True, + verbose_name='Value float', + ), + ), + migrations.AlterField( + model_name='value', + name='value_int', + field=models.BigIntegerField( + blank=True, + null=True, + verbose_name='Value int', + ), + ), + migrations.AlterField( + model_name='value', + name='value_json', + field=models.JSONField( + blank=True, + default=dict, + encoder=DjangoJSONEncoder, + null=True, + verbose_name='Value JSON', + ), + ), + migrations.AlterField( + model_name='value', + name='value_text', + field=models.TextField( + blank=True, + null=True, + verbose_name='Value text', + ), + ), + ] From daf7975fe0ed0eeb51fa7f5a2c3dd7ae066d4524 Mon Sep 17 00:00:00 2001 From: Mike <22396211+Dresdn@users.noreply.github.com> Date: Wed, 22 Feb 2023 08:18:43 -0700 Subject: [PATCH 4/4] ci: specify additional_dependencies for migration hook check to install --- .pre-commit-config.yaml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 958dfaf..dba095e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,8 +20,5 @@ repos: rev: v0.1.0 hooks: - id: check-migrations-created - args: - [ - --exec-command=poetry run python, - --manage-path=manage.py, - ] + args: [--manage-path=manage.py] + additional_dependencies: [django==4.1]