summaryrefslogtreecommitdiffstats
path: root/src/share/database/scripts/mysql/upgrade_001.0_to_002.0.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/database/scripts/mysql/upgrade_001.0_to_002.0.sh.in')
-rw-r--r--src/share/database/scripts/mysql/upgrade_001.0_to_002.0.sh.in57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/share/database/scripts/mysql/upgrade_001.0_to_002.0.sh.in b/src/share/database/scripts/mysql/upgrade_001.0_to_002.0.sh.in
new file mode 100644
index 0000000..efbc2c8
--- /dev/null
+++ b/src/share/database/scripts/mysql/upgrade_001.0_to_002.0.sh.in
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+# Copyright (C) 2016-2021 Internet Systems Consortium, Inc. ("ISC")
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# shellcheck disable=SC1091
+# SC1091: Not following: ... was not specified as input (see shellcheck -x).
+
+# Exit with error if commands exit with non-zero and if undefined variables are
+# used.
+set -eu
+
+# shellcheck disable=SC2034
+# SC2034: ... appears unused. Verify use (or export if used externally).
+prefix="@prefix@"
+
+# Include utilities. Use installed version if available and
+# use build version if it isn't.
+if [ -e @datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh ]; then
+ . "@datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh"
+else
+ . "@abs_top_builddir@/src/bin/admin/admin-utils.sh"
+fi
+
+VERSION=$(mysql_version "$@")
+
+if [ "$VERSION" != "1.0" ]; then
+ printf 'This script upgrades 1.0 to 2.0. '
+ printf 'Reported version is %s. Skipping upgrade.\n' "${VERSION}"
+ exit 0
+fi
+
+mysql "$@" <<EOF
+ALTER TABLE lease6
+ ADD COLUMN hwaddr varbinary(20),
+ ADD COLUMN hwtype smallint unsigned,
+ ADD COLUMN hwaddr_source int unsigned;
+
+CREATE TABLE lease_hwaddr_source (
+ hwaddr_source INT PRIMARY KEY NOT NULL,
+ name VARCHAR(40)
+) ENGINE = INNODB;
+
+-- See src/lib/dhcp/dhcp/pkt.h for detailed explanation
+INSERT INTO lease_hwaddr_source VALUES (1, 'HWADDR_SOURCE_RAW');
+INSERT INTO lease_hwaddr_source VALUES (2, 'HWADDR_SOURCE_IPV6_LINK_LOCAL');
+INSERT INTO lease_hwaddr_source VALUES (4, 'HWADDR_SOURCE_DUID');
+INSERT INTO lease_hwaddr_source VALUES (8, 'HWADDR_SOURCE_CLIENT_ADDR_RELAY_OPTION');
+INSERT INTO lease_hwaddr_source VALUES (16, 'HWADDR_SOURCE_REMOTE_ID');
+INSERT INTO lease_hwaddr_source VALUES (32, 'HWADDR_SOURCE_SUBSCRIBER_ID');
+INSERT INTO lease_hwaddr_source VALUES (64, 'HWADDR_SOURCE_DOCSIS');
+
+UPDATE schema_version SET version='2', minor='0';
+EOF