| CREATE_MANY2MANY_TABLES = """ |
| CREATE TABLE `autotests_dependency_labels` ( |
| `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, |
| `test_id` integer NOT NULL REFERENCES `autotests` (`id`), |
| `label_id` integer NOT NULL REFERENCES `labels` (`id`), |
| UNIQUE (`test_id`, `label_id`) |
| ); |
| CREATE TABLE `jobs_dependency_labels` ( |
| `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, |
| `job_id` integer NOT NULL REFERENCES `jobs` (`id`), |
| `label_id` integer NOT NULL REFERENCES `labels` (`id`), |
| UNIQUE (`job_id`, `label_id`) |
| ); |
| """ |
| |
| def migrate_up(manager): |
| manager.execute('ALTER TABLE labels ' |
| 'ADD COLUMN only_if_needed bool NOT NULL') |
| manager.execute_script(CREATE_MANY2MANY_TABLES) |
| |
| def migrate_down(manager): |
| manager.execute('ALTER TABLE labels DROP COLUMN only_if_needed') |
| manager.execute('DROP TABLE IF EXISTS `autotests_dependency_labels`') |
| manager.execute('DROP TABLE IF EXISTS `jobs_dependency_labels`') |