def migrate_up(manager): manager.execute(CREATE_QUERIES_TABLE) manager.execute(CREATE_TEST_VIEW_OUTER_JOINS) manager.execute(CREATE_PERF_VIEW_2) def migrate_down(manager): manager.execute(DROP_QUERIES_TABLE) manager.execute(DROP_TEST_VIEW_OUTER_JOINS) manager.execute(DROP_PERF_VIEW_2) CREATE_QUERIES_TABLE = """\ CREATE TABLE embedded_graphing_queries ( id INT NOT NULL AUTO_INCREMENT, url_token TEXT NOT NULL, graph_type VARCHAR(16) NOT NULL, params TEXT NOT NULL, last_accessed DATETIME NOT NULL, PRIMARY KEY(id), INDEX (url_token(128))) """ DROP_QUERIES_TABLE = """\ DROP TABLE IF EXISTS embedded_graphing_queries """ CREATE_TEST_VIEW_OUTER_JOINS = """\ CREATE VIEW test_view_outer_joins AS SELECT tests.test_idx, tests.job_idx, tests.test AS test_name, tests.subdir, tests.kernel_idx, tests.status AS status_idx, tests.reason, tests.machine_idx, tests.started_time AS test_started_time, tests.finished_time AS test_finished_time, jobs.tag AS job_tag, jobs.label AS job_name, jobs.username AS job_owner, jobs.queued_time AS job_queued_time, jobs.started_time AS job_started_time, jobs.finished_time AS job_finished_time, machines.hostname AS hostname, machines.machine_group AS platform, machines.owner AS machine_owner, kernels.kernel_hash, kernels.base AS kernel_base, kernels.printable AS kernel, status.word AS status FROM tests LEFT OUTER JOIN jobs ON jobs.job_idx = tests.job_idx LEFT OUTER JOIN machines ON machines.machine_idx = jobs.machine_idx LEFT OUTER JOIN kernels ON kernels.kernel_idx = tests.kernel_idx LEFT OUTER JOIN status ON status.status_idx = tests.status; """ DROP_TEST_VIEW_OUTER_JOINS = """\ DROP VIEW IF EXISTS test_view_outer_joins """ CREATE_PERF_VIEW_2 = """\ CREATE VIEW perf_view_2 AS SELECT tests.test_idx, tests.job_idx, tests.test AS test_name, tests.subdir, tests.kernel_idx, tests.status AS status_idx, tests.reason, tests.machine_idx, tests.started_time AS test_started_time, tests.finished_time AS test_finished_time, jobs.tag AS job_tag, jobs.label AS job_name, jobs.username AS job_owner, jobs.queued_time AS job_queued_time, jobs.started_time AS job_started_time, jobs.finished_time AS job_finished_time, machines.hostname AS hostname, machines.machine_group AS platform, machines.owner AS machine_owner, kernels.kernel_hash, kernels.base AS kernel_base, kernels.printable AS kernel, status.word AS status, iteration_result.iteration, iteration_result.attribute AS iteration_key, iteration_result.value AS iteration_value FROM tests INNER JOIN jobs ON jobs.job_idx = tests.job_idx INNER JOIN machines ON machines.machine_idx = jobs.machine_idx INNER JOIN kernels ON kernels.kernel_idx = tests.kernel_idx INNER JOIN status ON status.status_idx = tests.status INNER JOIN iteration_result ON iteration_result.test_idx = tests.test_idx; """ DROP_PERF_VIEW_2 = """\ DROP VIEW IF EXISTS perf_view_2 """