From bcf771bc6f165f8c364637b1055c6545d78c17bb Mon Sep 17 00:00:00 2001 From: Spyros Trigazis Date: Thu, 4 Feb 2021 19:31:36 +0100 Subject: [PATCH] Do not create constraints for boolean fields On mysql 8, Boolean fields create constraints which later make it impossible to alter the name of the column. See: https://github.com/sqlalchemy/alembic/issues/699 Per upstream alembic recommendation, do not create constraints explicitly. https://github.com/sqlalchemy/alembic/issues/699#issuecomment-760983057 story: 2008488 task: 41537 Change-Id: I51659c6e179d7e4e2cfc5be46348fac483d76e3b Signed-off-by: Spyros Trigazis --- .../versions/1d045384b966_add_insecure_baymodel_attr.py | 8 ++++++-- .../27ad304554e2_adding_magnum_service_functionality.py | 8 ++++++-- .../2ae93c9c6191_add_public_column_to_baymodel_table.py | 4 +++- .../461d798132c7_change_cluster_to_support_nodegroups.py | 2 +- .../47380964133d_add_network_subnet_fip_to_cluster.py | 2 +- .../alembic/versions/4e263f236334_add_registry_enabled.py | 2 +- .../alembic/versions/5ad410481b88_rename_insecure.py | 2 +- ...d341_add_master_lb_enabled_column_to_baymodel_table.py | 4 +++- .../87e62e3c7abc_add_hidden_to_cluster_template.py | 6 ++++-- .../95096e2334ee_add_master_lb_enabled_to_cluster.py | 4 +++- .../alembic/versions/ac92cbae311c_add_nodegoup_table.py | 4 +++- .../b1f612248cab_add_floating_ip_enabled_column_to_.py | 2 +- 12 files changed, 33 insertions(+), 15 deletions(-) diff --git a/magnum/db/sqlalchemy/alembic/versions/1d045384b966_add_insecure_baymodel_attr.py b/magnum/db/sqlalchemy/alembic/versions/1d045384b966_add_insecure_baymodel_attr.py index dbe81cc562..9d976bce1c 100644 --- a/magnum/db/sqlalchemy/alembic/versions/1d045384b966_add_insecure_baymodel_attr.py +++ b/magnum/db/sqlalchemy/alembic/versions/1d045384b966_add_insecure_baymodel_attr.py @@ -26,10 +26,14 @@ import sqlalchemy as sa # noqa: E402 def upgrade(): - insecure_column = sa.Column('insecure', sa.Boolean(), default=False) + insecure_column = sa.Column('insecure', + sa.Boolean(create_constraint=False), + default=False) op.add_column('baymodel', insecure_column) baymodel = sa.sql.table('baymodel', - sa.Column('insecure', sa.Boolean(), default=False)) + sa.Column('insecure', + sa.Boolean(create_constraint=False), + default=False)) op.execute( baymodel.update().values({'insecure': True}) ) diff --git a/magnum/db/sqlalchemy/alembic/versions/27ad304554e2_adding_magnum_service_functionality.py b/magnum/db/sqlalchemy/alembic/versions/27ad304554e2_adding_magnum_service_functionality.py index 1e8e50887a..b1424643cf 100644 --- a/magnum/db/sqlalchemy/alembic/versions/27ad304554e2_adding_magnum_service_functionality.py +++ b/magnum/db/sqlalchemy/alembic/versions/27ad304554e2_adding_magnum_service_functionality.py @@ -35,14 +35,18 @@ def upgrade(): sa.Column('report_count', sa.Integer(), nullable=False), sa.Column('host', sa.String(length=255), nullable=True), sa.Column('binary', sa.String(length=255), nullable=True), - sa.Column('disabled', sa.Boolean(), nullable=True), + sa.Column('disabled', + sa.Boolean(create_constraint=False), + nullable=True), sa.Column('disabled_reason', sa.String(length=255), nullable=True), # 'last_seen_up' has different purpose than 'updated_at'. # 'updated_at' refers to any modification of the entry, which can # be administrative too, whereas 'last_seen_up' is more related to # magnum_service. Modeled after nova/servicegroup sa.Column('last_seen_up', sa.DateTime(), nullable=True), - sa.Column('forced_down', sa.Boolean(), nullable=True), + sa.Column('forced_down', + sa.Boolean(create_constraint=False), + nullable=True), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('host', 'binary', name='uniq_magnum_service0host0binary') diff --git a/magnum/db/sqlalchemy/alembic/versions/2ae93c9c6191_add_public_column_to_baymodel_table.py b/magnum/db/sqlalchemy/alembic/versions/2ae93c9c6191_add_public_column_to_baymodel_table.py index 14054fa124..bd536bcf80 100644 --- a/magnum/db/sqlalchemy/alembic/versions/2ae93c9c6191_add_public_column_to_baymodel_table.py +++ b/magnum/db/sqlalchemy/alembic/versions/2ae93c9c6191_add_public_column_to_baymodel_table.py @@ -29,4 +29,6 @@ import sqlalchemy as sa # noqa: E402 def upgrade(): - op.add_column('baymodel', sa.Column('public', sa.Boolean(), default=False)) + op.add_column('baymodel', sa.Column('public', + sa.Boolean(create_constraint=False), + default=False)) diff --git a/magnum/db/sqlalchemy/alembic/versions/461d798132c7_change_cluster_to_support_nodegroups.py b/magnum/db/sqlalchemy/alembic/versions/461d798132c7_change_cluster_to_support_nodegroups.py index e6920319a7..7f96dff66b 100644 --- a/magnum/db/sqlalchemy/alembic/versions/461d798132c7_change_cluster_to_support_nodegroups.py +++ b/magnum/db/sqlalchemy/alembic/versions/461d798132c7_change_cluster_to_support_nodegroups.py @@ -60,7 +60,7 @@ def upgrade(): sa.Column('max_node_count', sa.Integer, nullable=True), sa.Column('min_node_count', sa.Integer, nullable=True), sa.Column('role', String(length=255), nullable=True), - sa.Column('is_default', sa.Boolean()) + sa.Column('is_default', sa.Boolean(create_constraint=False)) ) connection = op.get_bind() diff --git a/magnum/db/sqlalchemy/alembic/versions/47380964133d_add_network_subnet_fip_to_cluster.py b/magnum/db/sqlalchemy/alembic/versions/47380964133d_add_network_subnet_fip_to_cluster.py index 42db8f0db7..d25ed00014 100644 --- a/magnum/db/sqlalchemy/alembic/versions/47380964133d_add_network_subnet_fip_to_cluster.py +++ b/magnum/db/sqlalchemy/alembic/versions/47380964133d_add_network_subnet_fip_to_cluster.py @@ -36,5 +36,5 @@ def upgrade(): String(255, mysql_ndb_type=TINYTEXT), nullable=True)) op.add_column('cluster', sa.Column('floating_ip_enabled', - sa.Boolean(), + sa.Boolean(create_constraint=False), default=False)) diff --git a/magnum/db/sqlalchemy/alembic/versions/4e263f236334_add_registry_enabled.py b/magnum/db/sqlalchemy/alembic/versions/4e263f236334_add_registry_enabled.py index 19882e29c4..1773247963 100644 --- a/magnum/db/sqlalchemy/alembic/versions/4e263f236334_add_registry_enabled.py +++ b/magnum/db/sqlalchemy/alembic/versions/4e263f236334_add_registry_enabled.py @@ -27,4 +27,4 @@ import sqlalchemy as sa # noqa: E402 def upgrade(): op.add_column('baymodel', sa.Column('registry_enabled', - sa.Boolean(), default=False)) + sa.Boolean(create_constraint=False), default=False)) diff --git a/magnum/db/sqlalchemy/alembic/versions/5ad410481b88_rename_insecure.py b/magnum/db/sqlalchemy/alembic/versions/5ad410481b88_rename_insecure.py index 9f958ea300..3c90286df5 100644 --- a/magnum/db/sqlalchemy/alembic/versions/5ad410481b88_rename_insecure.py +++ b/magnum/db/sqlalchemy/alembic/versions/5ad410481b88_rename_insecure.py @@ -28,4 +28,4 @@ import sqlalchemy as sa # noqa: E402 def upgrade(): op.alter_column('baymodel', 'insecure', new_column_name='tls_disabled', - existing_type=sa.Boolean()) + existing_type=sa.Boolean(create_constraint=False)) diff --git a/magnum/db/sqlalchemy/alembic/versions/68ce16dfd341_add_master_lb_enabled_column_to_baymodel_table.py b/magnum/db/sqlalchemy/alembic/versions/68ce16dfd341_add_master_lb_enabled_column_to_baymodel_table.py index 1494c6ee54..89999c6e8d 100644 --- a/magnum/db/sqlalchemy/alembic/versions/68ce16dfd341_add_master_lb_enabled_column_to_baymodel_table.py +++ b/magnum/db/sqlalchemy/alembic/versions/68ce16dfd341_add_master_lb_enabled_column_to_baymodel_table.py @@ -27,4 +27,6 @@ import sqlalchemy as sa # noqa: E402 def upgrade(): op.add_column('baymodel', - sa.Column('master_lb_enabled', sa.Boolean(), default=False)) + sa.Column('master_lb_enabled', + sa.Boolean(create_constraint=False), + default=False)) diff --git a/magnum/db/sqlalchemy/alembic/versions/87e62e3c7abc_add_hidden_to_cluster_template.py b/magnum/db/sqlalchemy/alembic/versions/87e62e3c7abc_add_hidden_to_cluster_template.py index d8dcc52b86..683f0e414d 100644 --- a/magnum/db/sqlalchemy/alembic/versions/87e62e3c7abc_add_hidden_to_cluster_template.py +++ b/magnum/db/sqlalchemy/alembic/versions/87e62e3c7abc_add_hidden_to_cluster_template.py @@ -26,5 +26,7 @@ import sqlalchemy as sa # noqa: E402 def upgrade(): - op.add_column('cluster_template', sa.Column('hidden', sa.Boolean(), - default=False)) + op.add_column('cluster_template', + sa.Column('hidden', + sa.Boolean(create_constraint=False), + default=False)) diff --git a/magnum/db/sqlalchemy/alembic/versions/95096e2334ee_add_master_lb_enabled_to_cluster.py b/magnum/db/sqlalchemy/alembic/versions/95096e2334ee_add_master_lb_enabled_to_cluster.py index a43a24a643..4a724e4a60 100644 --- a/magnum/db/sqlalchemy/alembic/versions/95096e2334ee_add_master_lb_enabled_to_cluster.py +++ b/magnum/db/sqlalchemy/alembic/versions/95096e2334ee_add_master_lb_enabled_to_cluster.py @@ -28,7 +28,9 @@ down_revision = 'c04e925e65c2' def upgrade(): op.add_column('cluster', - sa.Column('master_lb_enabled', sa.Boolean(), default=False)) + sa.Column('master_lb_enabled', + sa.Boolean(create_constraint=False), + default=False)) # Populate existing cluster with the cluster template_id connection = op.get_bind() connection.execute( diff --git a/magnum/db/sqlalchemy/alembic/versions/ac92cbae311c_add_nodegoup_table.py b/magnum/db/sqlalchemy/alembic/versions/ac92cbae311c_add_nodegoup_table.py index ff772e2f5a..b4921bfc2d 100644 --- a/magnum/db/sqlalchemy/alembic/versions/ac92cbae311c_add_nodegoup_table.py +++ b/magnum/db/sqlalchemy/alembic/versions/ac92cbae311c_add_nodegoup_table.py @@ -53,7 +53,9 @@ def upgrade(): sa.Column('max_node_count', sa.Integer(), nullable=True), sa.Column('min_node_count', sa.Integer(), nullable=True), sa.Column('role', String(length=255), nullable=True), - sa.Column('is_default', sa.Boolean(), default=False), + sa.Column('is_default', + sa.Boolean(create_constraint=False), + default=False), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('uuid', name='uniq_nodegroup0uuid'), sa.UniqueConstraint('cluster_id', 'name', diff --git a/magnum/db/sqlalchemy/alembic/versions/b1f612248cab_add_floating_ip_enabled_column_to_.py b/magnum/db/sqlalchemy/alembic/versions/b1f612248cab_add_floating_ip_enabled_column_to_.py index 01e2d39ac8..5b03019ae0 100644 --- a/magnum/db/sqlalchemy/alembic/versions/b1f612248cab_add_floating_ip_enabled_column_to_.py +++ b/magnum/db/sqlalchemy/alembic/versions/b1f612248cab_add_floating_ip_enabled_column_to_.py @@ -28,5 +28,5 @@ import sqlalchemy as sa # noqa: E402 def upgrade(): op.add_column('baymodel', sa.Column('floating_ip_enabled', - sa.Boolean(), + sa.Boolean(create_constraint=False), default=True))