From bb1c2b28f8bf4a100dbd8252b558154018dd4c3b Mon Sep 17 00:00:00 2001 From: jun xie Date: Sat, 20 Dec 2014 00:24:22 +0800 Subject: [PATCH] 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 --- .../versions/033_add_encryption_unique_key.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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()) -- 2.45.2