diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9aae2c7..9be7e56 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ repos: - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/myint/autoflake - rev: v1.4 + rev: v2.0.0 hooks: - id: autoflake args: @@ -15,7 +15,7 @@ repos: - --remove-unused-variables - --remove-all-unused-imports - repo: https://github.com/pycqa/isort - rev: 5.10.1 + rev: 5.12.0 hooks: - id: isort - repo: https://github.com/psf/black @@ -23,7 +23,7 @@ repos: hooks: - id: black language_version: python3 # Should be a command that runs python3.6+ - - repo: https://gitlab.com/pycqa/flake8 - rev: '3.9.2' + - repo: https://github.com/PyCQA/flake8 + rev: 6.0.0 hooks: - id: flake8 diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f90ba9..a353164 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ Changelog ========= +1.0.3 +----- + +Fixes: + +- Fail to run migration script for django 4 +- Fail to run migration script when duplicated idempotency_key exists + + 1.0.2 ----- diff --git a/rest_framework_idempotency_key/__version__.py b/rest_framework_idempotency_key/__version__.py index a6221b3..3f6fab6 100644 --- a/rest_framework_idempotency_key/__version__.py +++ b/rest_framework_idempotency_key/__version__.py @@ -1 +1 @@ -__version__ = '1.0.2' +__version__ = '1.0.3' diff --git a/rest_framework_idempotency_key/migrations/0003_remove_user.py b/rest_framework_idempotency_key/migrations/0003_remove_user.py index eefd241..d3a818c 100644 --- a/rest_framework_idempotency_key/migrations/0003_remove_user.py +++ b/rest_framework_idempotency_key/migrations/0003_remove_user.py @@ -3,6 +3,16 @@ from django.db import migrations, models +def remove_duplicated_records(apps, schema_editor): + IdempotencyKey = apps.get_model('rest_framework_idempotency_key', 'IdempotencyKey') + existed_keys = set() + for id_key in IdempotencyKey.objects.all(): + if id_key.idempotency_key in existed_keys: + id_key.delete() + else: + existed_keys.add(id_key.idempotency_key) + + class Migration(migrations.Migration): dependencies = [ @@ -10,14 +20,20 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RemoveField( + migrations.RunPython(remove_duplicated_records, migrations.RunPython.noop), + migrations.AlterField( model_name='idempotencykey', name='user', + field=models.IntegerField(null=True), ), migrations.RemoveConstraint( model_name='idempotencykey', name='Unique IdempotencyKey (user, idempotency_key)', ), + migrations.RemoveField( + model_name='idempotencykey', + name='user', + ), migrations.AddConstraint( model_name='idempotencykey', constraint=models.UniqueConstraint( diff --git a/setup.cfg b/setup.cfg index e4ca040..68efbe5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,8 +1,5 @@ [flake8] -extend-ignore= - E203, # See https://github.com/PyCQA/pycodestyle/issues/373 - E501, # style related, follow black - W503, # style related, follow black +extend-ignore= E203,E501,W503 max-line-length = 120 max-complexity = 100