db: Replace use of reverse cascades
Resolve the following RemovedIn20Warning warning: "ApplicationCredentialRoleModel" object is being merged into a Session along the backref cascade path for relationship "ApplicationCredentialModel.roles"; in SQLAlchemy 2.0, this reverse cascade will not take place. Set cascade_backrefs to False in either the relationship() or backref() function for the 2.0 behavior; or to set globally for the whole Session, set the future=True flag This also applies for "ApplicationCredentialAccessRuleModel" and "AccessRuleModel.application_credential". Change-Id: I277cb4d512ca6b4e4aca5aad60a97a78cdb961e3 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This commit is contained in:
parent
5d2ab6c63b
commit
0bbaf63a5a
@ -44,11 +44,13 @@ class ApplicationCredentialModel(sql.ModelBase, sql.ModelDictMixin):
|
|||||||
roles = sqlalchemy.orm.relationship(
|
roles = sqlalchemy.orm.relationship(
|
||||||
'ApplicationCredentialRoleModel',
|
'ApplicationCredentialRoleModel',
|
||||||
backref=sqlalchemy.orm.backref('application_credential'),
|
backref=sqlalchemy.orm.backref('application_credential'),
|
||||||
cascade='all, delete-orphan')
|
cascade='all, delete-orphan',
|
||||||
|
cascade_backrefs=False)
|
||||||
access_rules = sqlalchemy.orm.relationship(
|
access_rules = sqlalchemy.orm.relationship(
|
||||||
'ApplicationCredentialAccessRuleModel',
|
'ApplicationCredentialAccessRuleModel',
|
||||||
backref=sqlalchemy.orm.backref('application_credential'),
|
backref=sqlalchemy.orm.backref('application_credential'),
|
||||||
cascade='all, delete-orphan')
|
cascade='all, delete-orphan',
|
||||||
|
cascade_backrefs=False)
|
||||||
|
|
||||||
|
|
||||||
class ApplicationCredentialRoleModel(sql.ModelBase, sql.ModelDictMixin):
|
class ApplicationCredentialRoleModel(sql.ModelBase, sql.ModelDictMixin):
|
||||||
@ -78,7 +80,8 @@ class AccessRuleModel(sql.ModelBase, sql.ModelDictMixin):
|
|||||||
)
|
)
|
||||||
application_credential = sqlalchemy.orm.relationship(
|
application_credential = sqlalchemy.orm.relationship(
|
||||||
'ApplicationCredentialAccessRuleModel',
|
'ApplicationCredentialAccessRuleModel',
|
||||||
backref=sqlalchemy.orm.backref('access_rule'))
|
backref=sqlalchemy.orm.backref('access_rule'),
|
||||||
|
cascade_backrefs=False)
|
||||||
|
|
||||||
|
|
||||||
class ApplicationCredentialAccessRuleModel(sql.ModelBase, sql.ModelDictMixin):
|
class ApplicationCredentialAccessRuleModel(sql.ModelBase, sql.ModelDictMixin):
|
||||||
|
@ -79,16 +79,6 @@ class WarningsFixture(fixtures.Fixture):
|
|||||||
category=sqla_exc.SADeprecationWarning,
|
category=sqla_exc.SADeprecationWarning,
|
||||||
)
|
)
|
||||||
|
|
||||||
# ...but filter everything out until we get around to fixing them
|
|
||||||
# TODO(stephenfin): Fix all of these
|
|
||||||
|
|
||||||
warnings.filterwarnings(
|
|
||||||
'ignore',
|
|
||||||
module='keystone',
|
|
||||||
message=r'".*" object is being merged into a Session along .*',
|
|
||||||
category=sqla_exc.SADeprecationWarning,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.addCleanup(self._reset_warning_filters)
|
self.addCleanup(self._reset_warning_filters)
|
||||||
|
|
||||||
def _reset_warning_filters(self):
|
def _reset_warning_filters(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user