Fix for cinder-manage db purge
When backend database is postgresql, "cinder-manage db purge" will throw an exception. The root cause is that "deleted" column in table quality_of_service_specs is of type boolean, but it is compared with an integer. In mysql, there's no such issue because boolean in mysql is tinyint(1). Some logs: DBAPIError exception wrapped from (psycopg2.ProgrammingError) operator does not exist: boolean = integer Closes-Bug: #1797048 Change-Id: I05b0edef4cc56518e99622599f01dbd6280a7f1b Signed-off-by: Liang Fang <liang.a.fang@intel.com>
This commit is contained in:
parent
23cfc4fdea
commit
042ad4025a
@ -6536,9 +6536,9 @@ def purge_deleted_rows(context, age_in_days):
|
||||
if six.text_type(table) == "quality_of_service_specs":
|
||||
session.query(models.QualityOfServiceSpecs).filter(
|
||||
and_(models.QualityOfServiceSpecs.specs_id.isnot(
|
||||
None), models.QualityOfServiceSpecs.deleted == 1,
|
||||
models.QualityOfServiceSpecs.deleted_at <
|
||||
deleted_age)).delete()
|
||||
None), models.QualityOfServiceSpecs.
|
||||
deleted.is_(True), models.QualityOfServiceSpecs.
|
||||
deleted_at < deleted_age)).delete()
|
||||
result = session.execute(
|
||||
table.delete()
|
||||
.where(table.c.deleted_at < deleted_age))
|
||||
|
Loading…
x
Reference in New Issue
Block a user