db: make *_details.value non-nullable (#5274)

Fixes #4897
Some details tables were allowing null values for detail value which can cause NPE in some cases.
mysql> SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE FROM information_schema.columns WHERE table_schema='cloud' AND table_name LIKE'%_details' AND column_name='value' AND IS_NULLABLE='YES';
+-------------------------------+-------------+---------------+
| TABLE_NAME                    | COLUMN_NAME | COLUMN_TYPE   |
+-------------------------------+-------------+---------------+
| account_details               | value       | varchar(255)  |
| cluster_details               | value       | varchar(255)  |
| data_center_details           | value       | varchar(1024) |
| domain_details                | value       | varchar(255)  |
| image_store_details           | value       | varchar(255)  |
| storage_pool_details          | value       | varchar(255)  |
| template_deploy_as_is_details | value       | text          |
| user_vm_deploy_as_is_details  | value       | text          |
| user_vm_details               | value       | varchar(5120) |
+-------------------------------+-------------+---------------+
9 rows in set (0.00 sec)

Brings consistency for value column of *_details tables with preventing null values.

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
This commit is contained in:
Abhishek Kumar 2021-08-14 06:07:43 +05:30 committed by GitHub
parent 1d17d7cfbc
commit 87ddc76277
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -737,3 +737,23 @@ CALL ADD_GUEST_OS_AND_HYPERVISOR_MAPPING (9, 'pfSense 2.4', 'KVM', 'default', 'p
CALL ADD_GUEST_OS_AND_HYPERVISOR_MAPPING (9, 'OpenBSD 6.7', 'KVM', 'default', 'OpenBSD 6.7');
CALL ADD_GUEST_OS_AND_HYPERVISOR_MAPPING (9, 'OpenBSD 6.8', 'KVM', 'default', 'OpenBSD 6.8');
CALL ADD_GUEST_OS_AND_HYPERVISOR_MAPPING (1, 'AlmaLinux 8.3', 'KVM', 'default', 'AlmaLinux 8.3');
-- Alter value column of *_details table to prevent NULL values
UPDATE cloud.account_details SET value='' WHERE value IS NULL;
ALTER TABLE cloud.account_details MODIFY value varchar(255) NOT NULL;
UPDATE cloud.cluster_details SET value='' WHERE value IS NULL;
ALTER TABLE cloud.cluster_details MODIFY value varchar(255) NOT NULL;
UPDATE cloud.data_center_details SET value='' WHERE value IS NULL;
ALTER TABLE cloud.data_center_details MODIFY value varchar(1024) NOT NULL;
UPDATE cloud.domain_details SET value='' WHERE value IS NULL;
ALTER TABLE cloud.domain_details MODIFY value varchar(255) NOT NULL;
UPDATE cloud.image_store_details SET value='' WHERE value IS NULL;
ALTER TABLE cloud.image_store_details MODIFY value varchar(255) NOT NULL;
UPDATE cloud.storage_pool_details SET value='' WHERE value IS NULL;
ALTER TABLE cloud.storage_pool_details MODIFY value varchar(255) NOT NULL;
UPDATE cloud.template_deploy_as_is_details SET value='' WHERE value IS NULL;
ALTER TABLE cloud.template_deploy_as_is_details MODIFY value text NOT NULL;
UPDATE cloud.user_vm_deploy_as_is_details SET value='' WHERE value IS NULL;
ALTER TABLE cloud.user_vm_deploy_as_is_details MODIFY value text NOT NULL;
UPDATE cloud.user_vm_details SET value='' WHERE value IS NULL;
ALTER TABLE cloud.user_vm_details MODIFY value varchar(5120) NOT NULL;