From: jun xie Date: Fri, 19 Dec 2014 16:24:22 +0000 (+0800) Subject: encryption_id needs to be non-nullable X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=bb1c2b28f8bf4a100dbd8252b558154018dd4c3b;p=openstack-build%2Fcinder-build.git encryption_id needs to be non-nullable DB2 10.5 doesn't support primary key constraints over nullable columns, so we have to make this column non-nullable. Change-Id: I3f6ded20cd8cf1902347f58f91c05446739b48f5 Closes-Bug: #1404303 --- diff --git a/cinder/db/sqlalchemy/migrate_repo/versions/033_add_encryption_unique_key.py b/cinder/db/sqlalchemy/migrate_repo/versions/033_add_encryption_unique_key.py index 5075e65b8..a37fa114b 100644 --- a/cinder/db/sqlalchemy/migrate_repo/versions/033_add_encryption_unique_key.py +++ b/cinder/db/sqlalchemy/migrate_repo/versions/033_add_encryption_unique_key.py @@ -24,7 +24,14 @@ def upgrade(migrate_engine): encryptions = Table('encryption', meta, autoload=True) - encryption_id = Column('encryption_id', String(36)) + encryption_id_column_kwargs = {} + if migrate_engine.name == 'ibm_db_sa': + # NOTE(junxiebj): DB2 10.5 doesn't support primary key + # constraints over nullable columns, so we have to + # make the column non-nullable in the DB2 case. + encryption_id_column_kwargs['nullable'] = False + encryption_id = Column('encryption_id', String(36), + **encryption_id_column_kwargs) encryptions.create_column(encryption_id) encryption_items = list(encryptions.select().execute())