UP_SQL = """ CREATE TABLE afe_drones ( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, hostname VARCHAR(255) NOT NULL ) ENGINE=InnoDB; ALTER TABLE afe_drones ADD CONSTRAINT afe_drones_unique UNIQUE KEY (hostname); CREATE TABLE afe_drone_sets ( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name VARCHAR(255) NOT NULL ) ENGINE=InnoDB; ALTER TABLE afe_drone_sets ADD CONSTRAINT afe_drone_sets_unique UNIQUE KEY (name); CREATE TABLE afe_drone_sets_drones ( id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, droneset_id INT NOT NULL, drone_id INT NOT NULL ) ENGINE=InnoDB; ALTER TABLE afe_drone_sets_drones ADD CONSTRAINT afe_drone_sets_drones_droneset_ibfk FOREIGN KEY (droneset_id) REFERENCES afe_drone_sets (id); ALTER TABLE afe_drone_sets_drones ADD CONSTRAINT afe_drone_sets_drones_drone_ibfk FOREIGN KEY (drone_id) REFERENCES afe_drones (id); ALTER TABLE afe_drone_sets_drones ADD CONSTRAINT afe_drone_sets_drones_unique UNIQUE KEY (droneset_id, drone_id); ALTER TABLE afe_jobs ADD COLUMN drone_set_id INT; ALTER TABLE afe_jobs ADD CONSTRAINT afe_jobs_drone_set_ibfk FOREIGN KEY (drone_set_id) REFERENCES afe_drone_sets (id); ALTER TABLE afe_users ADD COLUMN drone_set_id INT; ALTER TABLE afe_users ADD CONSTRAINT afe_users_drone_set_ibfk FOREIGN KEY (drone_set_id) REFERENCES afe_drone_sets (id); UPDATE afe_special_tasks SET requested_by_id = ( SELECT id FROM afe_users WHERE login = 'autotest_system') WHERE requested_by_id IS NULL; SET foreign_key_checks = 0; ALTER TABLE afe_special_tasks MODIFY COLUMN requested_by_id INT NOT NULL; SET foreign_key_checks = 1; """ DOWN_SQL = """ ALTER TABLE afe_special_tasks MODIFY COLUMN requested_by_id INT DEFAULT NULL; ALTER TABLE afe_users DROP FOREIGN KEY afe_users_drone_set_ibfk; ALTER TABLE afe_users DROP COLUMN drone_set_id; ALTER TABLE afe_jobs DROP FOREIGN KEY afe_jobs_drone_set_ibfk; ALTER TABLE afe_jobs DROP COLUMN drone_set_id; DROP TABLE IF EXISTS afe_drone_sets_drones; DROP TABLE IF EXISTS afe_drone_sets; DROP TABLE IF EXISTS afe_drones; """