diff options
author | Erich Eckner <git@eckner.net> | 2018-03-28 10:01:50 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2018-03-28 10:01:50 +0200 |
commit | 6d6b37c0ad62d448503efadf613790d133a88465 (patch) | |
tree | 80d0a05759c32952601c4ff2693a19b359e42416 | |
parent | 4fa201c2d4a452c5192b5bc0f1f2b020a914cf3b (diff) | |
download | builder-6d6b37c0ad62d448503efadf613790d133a88465.tar.xz |
bin/bootstrap-mysql: "ON DELETE SET NULL" for "NULL" columns
-rwxr-xr-x | bin/bootstrap-mysql | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/bin/bootstrap-mysql b/bin/bootstrap-mysql index 43a79af..5f51c07 100755 --- a/bin/bootstrap-mysql +++ b/bin/bootstrap-mysql @@ -234,10 +234,17 @@ if [ ! "$1" = 'slim' ]; then tr ' ' '\n' | \ sed -n 's/^://;T;p' | \ while read -r link; do - printf 'ALTER TABLE `%s` ADD FOREIGN KEY (`%s`) REFERENCES `%s` (`id`) ON UPDATE CASCADE ON DELETE CASCADE;\n' \ + printf 'ALTER TABLE `%s` ADD FOREIGN KEY (`%s`) REFERENCES `%s` (`id`) ON UPDATE CASCADE ON DELETE ' \ "${table}" \ "${column}" \ "${link}" + if echo "${rest}" | \ + grep -qwF 'NULL'; then + printf 'SET NULL' + else + printf 'CASCADE' + fi + printf ';\n' done fi ;; |