diff --git a/db/upgrade-20210111.sql b/db/upgrade-20210111.sql
index c41d51a2ba0f34b76c5cf057769d09a9e3f14a7d..78ee9b8cfcd610774c40f6889235176ba68cc2ad 100644
--- a/db/upgrade-20210111.sql
+++ b/db/upgrade-20210111.sql
@@ -26,3 +26,31 @@ ALTER TABLE papers
 ALTER TABLE solutions
 	RENAME COLUMN last_submit TO final_submit,
 	RENAME COLUMN last_feedback TO final_feedback;
+
+CREATE TYPE job_type AS ENUM (
+	'download_submits',
+	'upload_feedback'
+);
+
+CREATE TYPE job_state AS ENUM (
+	'ready',
+	'running',
+	'done',				-- Hotovo, out_json a out_file jsou platné
+	'failed'			-- Interní chyba při zpracování, viz log
+);
+
+CREATE TABLE jobs (
+	job_id		serial		PRIMARY KEY,
+	type		job_type	NOT NULL,
+	state		job_state	NOT NULL,
+	user_id		int		NOT NULL REFERENCES users(user_id),			-- komu patří
+	created_at	timestamp with time zone	NOT NULL DEFAULT CURRENT_TIMESTAMP,	-- kdy byl založen
+	finished_at	timestamp with time zone	DEFAULT NULL,				-- kdy doběhl
+	expires_at	timestamp with time zone	DEFAULT NULL,				-- kdy bude automaticky smazán
+	description	text		NOT NULL DEFAULT '',
+	in_json		jsonb		DEFAULT NULL,
+	out_json	jsonb		DEFAULT NULL,
+	-- Soubory jsou součástí úlohy a po jejím ukončení budou smazány
+	in_file		varchar(255)	DEFAULT NULL,
+	out_file	varchar(255)	DEFAULT NULL
+);