From 09c8819c4e7d6afcf07625693a5be6a9e5a78582 Mon Sep 17 00:00:00 2001 From: virusdefender Date: Sat, 9 Dec 2017 22:31:13 +0800 Subject: [PATCH 1/2] migration to delete user output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit u need to run “vacuum full submission” to reduce db file size --- .../migrations/0009_delete_user_output.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 submission/migrations/0009_delete_user_output.py diff --git a/submission/migrations/0009_delete_user_output.py b/submission/migrations/0009_delete_user_output.py new file mode 100644 index 00000000..be4e6e1b --- /dev/null +++ b/submission/migrations/0009_delete_user_output.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations + + +def delete_user_output(apps, schema_editor): + Submission = apps.get_model("submission", "Submission") + for item in Submission.objects.all(): + if "data" in item.info and isinstance(item.info["data"], list): + for index in range(len(item.info["data"])): + item.info["data"][index]["output"] = "" + item.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('submission', '0008_submission_ip'), + ] + + operations = [ + migrations.RunPython(delete_user_output, reverse_code=migrations.RunPython.noop) + ] From d15c4aa60c291bed650d7604365b39cbe5486677 Mon Sep 17 00:00:00 2001 From: virusdefender Date: Sat, 9 Dec 2017 22:34:05 +0800 Subject: [PATCH 2/2] do not save user output --- judge/dispatcher.py | 4 ++-- submission/migrations/0009_delete_user_output.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/judge/dispatcher.py b/judge/dispatcher.py index 1b7b6e5c..85894258 100644 --- a/judge/dispatcher.py +++ b/judge/dispatcher.py @@ -117,7 +117,7 @@ class JudgeDispatcher(DispatcherBase): return self.submission.statistic_info["score"] = score - def judge(self, output=True): + def judge(self): server = self.choose_judge_server() if not server: data = {"submission_id": self.submission.id, "problem_id": self.problem.id} @@ -145,7 +145,7 @@ class JudgeDispatcher(DispatcherBase): "max_cpu_time": self.problem.time_limit, "max_memory": 1024 * 1024 * self.problem.memory_limit, "test_case_id": self.problem.test_case_id, - "output": output, + "output": False, "spj_version": self.problem.spj_version, "spj_config": spj_config.get("config"), "spj_compile_config": spj_config.get("compile"), diff --git a/submission/migrations/0009_delete_user_output.py b/submission/migrations/0009_delete_user_output.py index be4e6e1b..66c90c41 100644 --- a/submission/migrations/0009_delete_user_output.py +++ b/submission/migrations/0009_delete_user_output.py @@ -10,7 +10,7 @@ def delete_user_output(apps, schema_editor): if "data" in item.info and isinstance(item.info["data"], list): for index in range(len(item.info["data"])): item.info["data"][index]["output"] = "" - item.save() + item.save() class Migration(migrations.Migration):