From 56dda5eff4f57c1076d2d050ea6355588b30509e Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 15 Sep 2019 23:41:32 +1000 Subject: [PATCH 1/7] Script to check for unstaged migrations --- .travis.yml | 2 +- InvenTree/common/models.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fda3b78259..850e915d16 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ before_install: - cd InvenTree && python3 manage.py createsuperuser --username InvenTreeAdmin --email admin@inventree.com --noinput && cd .. script: - - git ls-files --exclude-standard --others + - python3 ci\check_migration_files.py - make coverage - make style diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 0b8795484b..da659b404f 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -68,6 +68,10 @@ class InvenTreeSetting(models.Model): description = models.CharField(max_length=200, blank=True, unique=False, help_text=_('Settings description')) + b_think = models.CharField(max_length=20, blank=True) + + a_thing = models.CharField(max_length=10, blank=False) + def validate_unique(self, exclude=None): """ Ensure that the key:value pair is unique. In addition to the base validators, this ensures that the 'key' From e781202daaf67e4e05cfb4ad11c6a344f9446405 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 15 Sep 2019 23:42:36 +1000 Subject: [PATCH 2/7] Add script --- .travis.yml | 2 +- ci/check_migration_files.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 ci/check_migration_files.py diff --git a/.travis.yml b/.travis.yml index 850e915d16..1f586dfcb6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ before_install: - cd InvenTree && python3 manage.py createsuperuser --username InvenTreeAdmin --email admin@inventree.com --noinput && cd .. script: - - python3 ci\check_migration_files.py + - python3 ci/check_migration_files.py - make coverage - make style diff --git a/ci/check_migration_files.py b/ci/check_migration_files.py new file mode 100644 index 0000000000..5d0da79142 --- /dev/null +++ b/ci/check_migration_files.py @@ -0,0 +1,29 @@ +""" Check that there are no database migration files which have not been committed. """ + +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import sys +import subprocess + +cmd = ['git', 'ls-files', '--exclude-standard', '--others'] + +proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + +out, err = proc.communicate() + +migrations = [] + +for line in str(out.decode()).split('\n'): + if '/migrations/' in line: + migrations.append(line) + +if len(migrations) == 0: + sys.exit(0) + +print("There are {n} unstaged migration files:".format(n=len(migrations))) + +for m in migrations: + print(" - {m}".format(m=m)) + +sys.exit(len(migrations)) \ No newline at end of file From 2986e995d1185171cbb75cf53ed14421f13ee068 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 15 Sep 2019 23:43:39 +1000 Subject: [PATCH 3/7] Make migrations before running script --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 1f586dfcb6..7941be564d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,7 @@ before_install: - cd InvenTree && python3 manage.py createsuperuser --username InvenTreeAdmin --email admin@inventree.com --noinput && cd .. script: + - cd InvenTree && python3 manage.py makemigrations && cd .. - python3 ci/check_migration_files.py - make coverage - make style From b9155bbde9e3a9f7af06d216ba7837237fd9e4b1 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 15 Sep 2019 23:45:55 +1000 Subject: [PATCH 4/7] Fix model file so that CI can run --- InvenTree/common/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index da659b404f..33fa54d4e9 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -70,7 +70,7 @@ class InvenTreeSetting(models.Model): b_think = models.CharField(max_length=20, blank=True) - a_thing = models.CharField(max_length=10, blank=False) + a_thing = models.CharField(max_length=10, blank=True) def validate_unique(self, exclude=None): """ Ensure that the key:value pair is unique. From 19522dfb92fb47c5622d2ec1ca7288fa63a02e34 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 15 Sep 2019 23:50:47 +1000 Subject: [PATCH 5/7] Commit the migation file --- .../migrations/0006_auto_20190915_1350.py | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 InvenTree/common/migrations/0006_auto_20190915_1350.py diff --git a/InvenTree/common/migrations/0006_auto_20190915_1350.py b/InvenTree/common/migrations/0006_auto_20190915_1350.py new file mode 100644 index 0000000000..99599fb0c9 --- /dev/null +++ b/InvenTree/common/migrations/0006_auto_20190915_1350.py @@ -0,0 +1,23 @@ +# Generated by Django 2.2.5 on 2019-09-15 13:50 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('common', '0005_auto_20190915_1256'), + ] + + operations = [ + migrations.AddField( + model_name='inventreesetting', + name='a_thing', + field=models.CharField(blank=True, max_length=10), + ), + migrations.AddField( + model_name='inventreesetting', + name='b_think', + field=models.CharField(blank=True, max_length=20), + ), + ] From 9af9158c10eba4557162c7f9e6e362471e813b6d Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 15 Sep 2019 23:56:12 +1000 Subject: [PATCH 6/7] Remove migration file --- .../migrations/0006_auto_20190915_1350.py | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 InvenTree/common/migrations/0006_auto_20190915_1350.py diff --git a/InvenTree/common/migrations/0006_auto_20190915_1350.py b/InvenTree/common/migrations/0006_auto_20190915_1350.py deleted file mode 100644 index 99599fb0c9..0000000000 --- a/InvenTree/common/migrations/0006_auto_20190915_1350.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 2.2.5 on 2019-09-15 13:50 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('common', '0005_auto_20190915_1256'), - ] - - operations = [ - migrations.AddField( - model_name='inventreesetting', - name='a_thing', - field=models.CharField(blank=True, max_length=10), - ), - migrations.AddField( - model_name='inventreesetting', - name='b_think', - field=models.CharField(blank=True, max_length=20), - ), - ] From 5107cf569462e27f6e68b37a316f0ee743060102 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 16 Sep 2019 00:03:19 +1000 Subject: [PATCH 7/7] Restore model file --- InvenTree/common/models.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 33fa54d4e9..0b8795484b 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -68,10 +68,6 @@ class InvenTreeSetting(models.Model): description = models.CharField(max_length=200, blank=True, unique=False, help_text=_('Settings description')) - b_think = models.CharField(max_length=20, blank=True) - - a_thing = models.CharField(max_length=10, blank=True) - def validate_unique(self, exclude=None): """ Ensure that the key:value pair is unique. In addition to the base validators, this ensures that the 'key'