diff --git a/capsulflask/db.py b/capsulflask/db.py index 57137b1..1b75fc0 100644 --- a/capsulflask/db.py +++ b/capsulflask/db.py @@ -43,7 +43,7 @@ def init_app(app, is_running_server): hasSchemaVersionTable = False actionWasTaken = False schemaVersion = 0 - desiredSchemaVersion = 16 + desiredSchemaVersion = 17 cursor = connection.cursor() diff --git a/capsulflask/schema_migrations/16_up_managed_ips.sql b/capsulflask/schema_migrations/16_up_managed_ips.sql index f8eb80c..f2d1f27 100644 --- a/capsulflask/schema_migrations/16_up_managed_ips.sql +++ b/capsulflask/schema_migrations/16_up_managed_ips.sql @@ -3,12 +3,12 @@ CREATE TABLE host_network ( public_ipv4_cidr_block TEXT NOT NULL, network_name TEXT NOT NULL, host TEXT NOT NULL REFERENCES hosts(id) ON DELETE RESTRICT, - PRIMARY KEY (host, network_name) + CONSTRAINT host_network_pkey PRIMARY KEY (host, network_name) ); - INSERT INTO host_network (host, network_name, public_ipv4_cidr_block) VALUES ('baikal', 'virbr1', '69.61.2.162/27'), - ('baikal', 'virbr2', '69.61.2.194/26'); + ('baikal', 'virbr2', '69.61.2.194/26'), + ('baikal', 'virbr3', '69.61.38.193/26'); ALTER TABLE vms RENAME COLUMN last_seen_ipv4 TO public_ipv4; ALTER TABLE vms RENAME COLUMN last_seen_ipv6 TO public_ipv6; ALTER TABLE vms ADD COLUMN network_name TEXT; @@ -18,7 +18,8 @@ UPDATE vms SET network_name = 'virbr2' WHERE public_ipv4 >= '69.61.2.192'; ALTER TABLE vms ALTER COLUMN network_name SET NOT NULL; -ALTER TABLE vms ADD FOREIGN KEY (host, network_name) REFERENCES host_network(host, network_name) ON DELETE RESTRICT; +ALTER TABLE vms ADD CONSTRAINT vms_host_network_name_fkey FOREIGN KEY (host, network_name) + REFERENCES host_network(host, network_name) ON DELETE RESTRICT; UPDATE schemaversion SET version = 16; diff --git a/capsulflask/schema_migrations/17_down_bridge_and_network_name.sql b/capsulflask/schema_migrations/17_down_bridge_and_network_name.sql new file mode 100644 index 0000000..2f6d0a9 --- /dev/null +++ b/capsulflask/schema_migrations/17_down_bridge_and_network_name.sql @@ -0,0 +1,18 @@ + + +ALTER TABLE vms DROP CONSTRAINT vms_host_network_name_fkey; + +UPDATE host_network SET network_name = 'virbr1' WHERE virtual_bridge_name = "virbr1"; +UPDATE host_network SET network_name = 'virbr2' WHERE virtual_bridge_name = "virbr1"; +UPDATE host_network SET network_name = 'virbr3' WHERE virtual_bridge_name = "virbr2"; + +UPDATE vms SET network_name = 'virbr1' WHERE network_name = "public1"; +UPDATE vms SET network_name = 'virbr2' WHERE network_name = "public2"; +UPDATE vms SET network_name = 'virbr3' WHERE network_name = "public3"; + +ALTER TABLE host_network DROP COLUMN virtual_bridge_name; + +ALTER TABLE vms ADD CONSTRAINT vms_host_network_name_fkey FOREIGN KEY (host, network_name) + REFERENCES host_network(host, network_name) ON DELETE RESTRICT; + +UPDATE schemaversion SET version = 16; diff --git a/capsulflask/schema_migrations/17_up_bridge_and_network_name.sql b/capsulflask/schema_migrations/17_up_bridge_and_network_name.sql new file mode 100644 index 0000000..92d51a5 --- /dev/null +++ b/capsulflask/schema_migrations/17_up_bridge_and_network_name.sql @@ -0,0 +1,26 @@ + + +ALTER TABLE vms DROP CONSTRAINT vms_host_network_name_fkey; + +ALTER TABLE host_network RENAME COLUMN network_name TO virtual_bridge_name; + +ALTER TABLE host_network ADD COLUMN network_name TEXT; + +UPDATE host_network SET network_name = 'public1' WHERE virtual_bridge_name = 'virbr1'; +UPDATE host_network SET network_name = 'public2' WHERE virtual_bridge_name = 'virbr2'; +UPDATE host_network SET network_name = 'public3' WHERE virtual_bridge_name = 'virbr3'; + +UPDATE vms SET network_name = 'public1' WHERE network_name = 'virbr1'; +UPDATE vms SET network_name = 'public2' WHERE network_name = 'virbr2'; +UPDATE vms SET network_name = 'public3' WHERE network_name = 'virbr3'; + +ALTER TABLE host_network ALTER COLUMN network_name SET NOT NULL; + +ALTER TABLE host_network DROP CONSTRAINT host_network_pkey; +ALTER TABLE host_network ADD CONSTRAINT host_network_pkey PRIMARY KEY (host, network_name); + +ALTER TABLE vms ADD CONSTRAINT vms_host_network_name_fkey FOREIGN KEY (host, network_name) + REFERENCES host_network(host, network_name) ON DELETE RESTRICT; + +UPDATE schemaversion SET version = 17; +