You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
2.0 KiB

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;
"""