1#!/bin/sh 2 3# Copyright (C) 2019-2021 Internet Systems Consortium, Inc. ("ISC") 4# 5# This Source Code Form is subject to the terms of the Mozilla Public 6# License, v. 2.0. If a copy of the MPL was not distributed with this 7# file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 9# shellcheck disable=SC1091 10# SC1091: Not following: ... was not specified as input (see shellcheck -x). 11 12# Exit with error if commands exit with non-zero and if undefined variables are 13# used. 14set -eu 15 16# shellcheck disable=SC2034 17# SC2034: ... appears unused. Verify use (or export if used externally). 18prefix="@prefix@" 19 20# Include utilities. Use installed version if available and 21# use build version if it isn't. 22if [ -e @datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh ]; then 23 . "@datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh" 24else 25 . "@abs_top_builddir@/src/bin/admin/admin-utils.sh" 26fi 27 28VERSION=$(mysql_version "$@") 29 30if [ "$VERSION" != "8.0" ]; then 31 printf 'This script upgrades 8.0 to 8.1. ' 32 printf 'Reported version is %s. Skipping upgrade.\n' "${VERSION}" 33 exit 0 34fi 35 36mysql "$@" <<EOF 37 38# Add lifetime bounds 39ALTER TABLE dhcp4_shared_network 40 ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL, 41 ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL; 42 43ALTER TABLE dhcp4_subnet 44 ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL, 45 ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL; 46 47ALTER TABLE dhcp6_shared_network 48 ADD COLUMN min_preferred_lifetime INT(10) DEFAULT NULL, 49 ADD COLUMN max_preferred_lifetime INT(10) DEFAULT NULL, 50 ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL, 51 ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL; 52 53ALTER TABLE dhcp6_subnet 54 ADD COLUMN min_preferred_lifetime INT(10) DEFAULT NULL, 55 ADD COLUMN max_preferred_lifetime INT(10) DEFAULT NULL, 56 ADD COLUMN min_valid_lifetime INT(10) DEFAULT NULL, 57 ADD COLUMN max_valid_lifetime INT(10) DEFAULT NULL; 58 59# Create dhcp4_server insert trigger 60DELIMITER $$ 61CREATE TRIGGER dhcp4_server_AINS AFTER INSERT ON dhcp4_server 62 FOR EACH ROW 63 BEGIN 64 CALL createAuditEntryDHCP4('dhcp4_server', NEW.id, "create"); 65 END $$ 66DELIMITER ; 67 68# Create dhcp4_server update trigger 69DELIMITER $$ 70CREATE TRIGGER dhcp4_server_AUPD AFTER UPDATE ON dhcp4_server 71 FOR EACH ROW 72 BEGIN 73 CALL createAuditEntryDHCP4('dhcp4_server', NEW.id, "update"); 74 END $$ 75DELIMITER ; 76 77# Create dhcp4_server delete trigger 78DELIMITER $$ 79CREATE TRIGGER dhcp4_server_ADEL AFTER DELETE ON dhcp4_server 80 FOR EACH ROW 81 BEGIN 82 CALL createAuditEntryDHCP4('dhcp4_server', OLD.id, "delete"); 83 END $$ 84DELIMITER ; 85 86# Create dhcp6_server insert trigger 87DELIMITER $$ 88CREATE TRIGGER dhcp6_server_AINS AFTER INSERT ON dhcp6_server 89 FOR EACH ROW 90 BEGIN 91 CALL createAuditEntryDHCP6('dhcp6_server', NEW.id, "create"); 92 END $$ 93DELIMITER ; 94 95# Create dhcp6_server update trigger 96DELIMITER $$ 97CREATE TRIGGER dhcp6_server_AUPD AFTER UPDATE ON dhcp6_server 98 FOR EACH ROW 99 BEGIN 100 CALL createAuditEntryDHCP6('dhcp6_server', NEW.id, "update"); 101 END $$ 102DELIMITER ; 103 104# Create dhcp6_server delete trigger 105DELIMITER $$ 106CREATE TRIGGER dhcp6_server_ADEL AFTER DELETE ON dhcp6_server 107 FOR EACH ROW 108 BEGIN 109 CALL createAuditEntryDHCP6('dhcp6_server', OLD.id, "delete"); 110 END $$ 111DELIMITER ; 112 113# Put the auth key in hexadecimal (double size but far more user friendly). 114ALTER TABLE hosts 115 MODIFY COLUMN auth_key VARCHAR(32) NULL; 116 117# Update the schema version number 118UPDATE schema_version 119SET version = '8', minor = '1'; 120 121# This line concludes database upgrade to version 8.1. 122 123EOF 124