From 79bc54a2d83e05d863dc836d651710859394e25c Mon Sep 17 00:00:00 2001 From: Cedric Brandily Date: Tue, 15 Mar 2016 22:50:19 +0100 Subject: [PATCH] Fix add_is_default_to_subnetpool migration add_is_default_to_subnetpool migration[1] is not working with a non-empty subnetpool table because it adds a new non-nullable column (is_default) to subnetpool table without a default value. This change adds a server_default value to is_default column in subnetpool table and updates associated db migration. [1] neutron/db/migration/alembic_migrations/versions/mitaka/expand/\ 13cfb89f881a_add_is_default_to_subnetpool.py Closes-Bug: #1557757 Change-Id: Ib0b2ac061d21a7d908f14b399b0bba06d94b7241 --- .../expand/13cfb89f881a_add_is_default_to_subnetpool.py | 2 ++ neutron/db/models_v2.py | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/neutron/db/migration/alembic_migrations/versions/mitaka/expand/13cfb89f881a_add_is_default_to_subnetpool.py b/neutron/db/migration/alembic_migrations/versions/mitaka/expand/13cfb89f881a_add_is_default_to_subnetpool.py index 6e7d9f7494b..48c198e4114 100644 --- a/neutron/db/migration/alembic_migrations/versions/mitaka/expand/13cfb89f881a_add_is_default_to_subnetpool.py +++ b/neutron/db/migration/alembic_migrations/versions/mitaka/expand/13cfb89f881a_add_is_default_to_subnetpool.py @@ -27,10 +27,12 @@ down_revision = '59cb5b6cf4d' from alembic import op import sqlalchemy as sa +from sqlalchemy import sql def upgrade(): op.add_column('subnetpools', sa.Column('is_default', sa.Boolean(), + server_default=sql.false(), nullable=False)) diff --git a/neutron/db/models_v2.py b/neutron/db/models_v2.py index 3c6bf0d7e52..2a78dbee146 100644 --- a/neutron/db/models_v2.py +++ b/neutron/db/models_v2.py @@ -15,6 +15,7 @@ import sqlalchemy as sa from sqlalchemy import orm +from sqlalchemy import sql from neutron.api.v2 import attributes as attr from neutron.common import constants @@ -248,7 +249,8 @@ class SubnetPool(model_base.HasStandardAttributes, model_base.BASEV2, min_prefixlen = sa.Column(sa.Integer, nullable=False) max_prefixlen = sa.Column(sa.Integer, nullable=False) shared = sa.Column(sa.Boolean, nullable=False) - is_default = sa.Column(sa.Boolean, nullable=False) + is_default = sa.Column(sa.Boolean, nullable=False, + server_default=sql.false()) default_quota = sa.Column(sa.Integer, nullable=True) hash = sa.Column(sa.String(36), nullable=False, server_default='') address_scope_id = sa.Column(sa.String(36), nullable=True)