diff --git a/.travis.yml b/.travis.yml index fda3b78259..7941be564d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,8 @@ before_install: - cd InvenTree && python3 manage.py createsuperuser --username InvenTreeAdmin --email admin@inventree.com --noinput && cd .. script: - - git ls-files --exclude-standard --others + - cd InvenTree && python3 manage.py makemigrations && cd .. + - 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