Exclude unwanted modules from import / export

This commit is contained in:
Oliver Walters 2021-04-25 10:13:31 +10:00
parent 525a49f001
commit de720afd0e

View File

@ -232,6 +232,30 @@ def coverage(c):
# Generate coverage report # Generate coverage report
c.run('coverage html') c.run('coverage html')
def content_excludes():
"""
Returns a list of content types to exclude from import/export
"""
excludes = [
"contenttypes",
"auth.permission",
"error_report.error",
"admin.logentry",
"django_q.schedule",
"django_q.task",
"django_q.ormq",
]
output = ""
for e in excludes:
output += f"--exclude {e} "
return output
@task(help={'filename': "Output filename (default = 'data.json')"}) @task(help={'filename': "Output filename (default = 'data.json')"})
def export_records(c, filename='data.json'): def export_records(c, filename='data.json'):
""" """
@ -253,7 +277,7 @@ def export_records(c, filename='data.json'):
print("Cancelled export operation") print("Cancelled export operation")
sys.exit(1) sys.exit(1)
cmd = f'dumpdata --exclude contenttypes --exclude auth.permission --indent 2 --output {filename}' cmd = f"dumpdata --indent 2 --output {filename} {content_excludes()}"
manage(c, cmd, pty=True) manage(c, cmd, pty=True)
@ -273,7 +297,7 @@ def import_records(c, filename='data.json'):
print(f"Importing database records from '{filename}'") print(f"Importing database records from '{filename}'")
cmd = f'loaddata {filename}' cmd = f"loaddata {filename} -i {content_excludes()}"
manage(c, cmd, pty=True) manage(c, cmd, pty=True)