diff --git a/cloudkitty/common/db/models.py b/cloudkitty/common/db/models.py index c7c934ba..2005f74f 100644 --- a/cloudkitty/common/db/models.py +++ b/cloudkitty/common/db/models.py @@ -13,7 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. # -from sqlalchemy.ext import declarative +from sqlalchemy.orm import declarative_base NAMING_CONVENTION = { "ix": 'ix_%(column_0_label)s', @@ -24,6 +24,6 @@ NAMING_CONVENTION = { def get_base(): - base = declarative.declarative_base() + base = declarative_base() base.metadata.naming_convention = NAMING_CONVENTION return base diff --git a/cloudkitty/db/sqlalchemy/models.py b/cloudkitty/db/sqlalchemy/models.py index f0ca6910..76c4c36e 100644 --- a/cloudkitty/db/sqlalchemy/models.py +++ b/cloudkitty/db/sqlalchemy/models.py @@ -15,10 +15,10 @@ # from oslo_db.sqlalchemy import models import sqlalchemy -from sqlalchemy.ext import declarative +from sqlalchemy.orm import declarative_base -Base = declarative.declarative_base() +Base = declarative_base() class StateInfo(Base, models.ModelBase): diff --git a/cloudkitty/rating/hash/db/sqlalchemy/alembic/models/f8c799db4aa0_fix_unnamed_constraints.py b/cloudkitty/rating/hash/db/sqlalchemy/alembic/models/f8c799db4aa0_fix_unnamed_constraints.py index 741375f0..4083816c 100644 --- a/cloudkitty/rating/hash/db/sqlalchemy/alembic/models/f8c799db4aa0_fix_unnamed_constraints.py +++ b/cloudkitty/rating/hash/db/sqlalchemy/alembic/models/f8c799db4aa0_fix_unnamed_constraints.py @@ -15,7 +15,6 @@ # from oslo_db.sqlalchemy import models import sqlalchemy -from sqlalchemy.ext import declarative from sqlalchemy import orm from sqlalchemy import schema @@ -110,7 +109,7 @@ class HashMapField(Base, HashMapBase): fk_to_resolve = { 'service_id': 'service.service_id'} - @declarative.declared_attr + @orm.declared_attr def __table_args__(cls): args = ( schema.UniqueConstraint( @@ -205,7 +204,7 @@ class HashMapMapping(Base, HashMapBase): 'field_id': 'field.field_id', 'group_id': 'group.group_id'} - @declarative.declared_attr + @orm.declared_attr def __table_args__(cls): args = ( schema.UniqueConstraint( @@ -277,7 +276,7 @@ class HashMapThreshold(Base, HashMapBase): 'field_id': 'field.field_id', 'group_id': 'group.group_id'} - @declarative.declared_attr + @orm.declared_attr def __table_args__(cls): args = ( schema.UniqueConstraint( diff --git a/cloudkitty/rating/hash/db/sqlalchemy/models.py b/cloudkitty/rating/hash/db/sqlalchemy/models.py index 2927e492..6b3bf4c9 100644 --- a/cloudkitty/rating/hash/db/sqlalchemy/models.py +++ b/cloudkitty/rating/hash/db/sqlalchemy/models.py @@ -15,7 +15,6 @@ # from oslo_db.sqlalchemy import models import sqlalchemy -from sqlalchemy.ext import declarative from sqlalchemy import orm from sqlalchemy import schema @@ -111,7 +110,7 @@ class HashMapField(Base, HashMapBase): fk_to_resolve = { 'service_id': 'service.service_id'} - @declarative.declared_attr + @orm.declared_attr def __table_args__(cls): args = ( schema.UniqueConstraint( @@ -202,7 +201,7 @@ class HashMapMapping(Base, HashMapBase, VolatileAuditableModel): 'field_id': 'field.field_id', 'group_id': 'group.group_id'} - @declarative.declared_attr + @orm.declared_attr def __table_args__(cls): args = ( schema.UniqueConstraint( @@ -281,7 +280,7 @@ class HashMapThreshold(Base, HashMapBase): 'field_id': 'field.field_id', 'group_id': 'group.group_id'} - @declarative.declared_attr + @orm.declared_attr def __table_args__(cls): args = ( schema.UniqueConstraint( diff --git a/cloudkitty/rating/pyscripts/db/sqlalchemy/models.py b/cloudkitty/rating/pyscripts/db/sqlalchemy/models.py index ff043f1c..7968f250 100644 --- a/cloudkitty/rating/pyscripts/db/sqlalchemy/models.py +++ b/cloudkitty/rating/pyscripts/db/sqlalchemy/models.py @@ -18,12 +18,12 @@ import zlib from oslo_db.sqlalchemy import models import sqlalchemy -from sqlalchemy.ext import declarative from sqlalchemy.ext import hybrid +from sqlalchemy.orm import declarative_base from cloudkitty.rating.common.db.models import VolatileAuditableModel -Base = declarative.declarative_base() +Base = declarative_base() class PyScriptsBase(models.ModelBase): diff --git a/cloudkitty/storage/v1/hybrid/models.py b/cloudkitty/storage/v1/hybrid/models.py index c04312b6..59817226 100644 --- a/cloudkitty/storage/v1/hybrid/models.py +++ b/cloudkitty/storage/v1/hybrid/models.py @@ -15,9 +15,9 @@ # from oslo_db.sqlalchemy import models import sqlalchemy -from sqlalchemy.ext import declarative +from sqlalchemy.orm import declarative_base -Base = declarative.declarative_base() +Base = declarative_base() class TenantState(Base, models.ModelBase): diff --git a/cloudkitty/storage/v1/sqlalchemy/models.py b/cloudkitty/storage/v1/sqlalchemy/models.py index b469a6e3..d2ed844f 100644 --- a/cloudkitty/storage/v1/sqlalchemy/models.py +++ b/cloudkitty/storage/v1/sqlalchemy/models.py @@ -15,12 +15,12 @@ # from oslo_db.sqlalchemy import models import sqlalchemy -from sqlalchemy.ext import declarative +from sqlalchemy.orm import declarative_base from cloudkitty.utils import json -Base = declarative.declarative_base() +Base = declarative_base() class RatedDataFrame(Base, models.ModelBase): diff --git a/cloudkitty/storage_state/alembic/versions/750d3050_create_last_processed_timestamp_column.py b/cloudkitty/storage_state/alembic/versions/750d3050_create_last_processed_timestamp_column.py index c479f3c3..94cdf884 100644 --- a/cloudkitty/storage_state/alembic/versions/750d3050_create_last_processed_timestamp_column.py +++ b/cloudkitty/storage_state/alembic/versions/750d3050_create_last_processed_timestamp_column.py @@ -22,7 +22,7 @@ Create Date: 2021-02-08 17:00:00.000 from alembic import op import sqlalchemy -from sqlalchemy.ext import declarative +from sqlalchemy import orm from oslo_db.sqlalchemy import models @@ -35,7 +35,7 @@ down_revision = 'c50ed2c19204' branch_labels = None depends_on = None -Base = declarative.declarative_base() +Base = orm.declarative_base() def upgrade(): @@ -53,7 +53,7 @@ def upgrade(): class IdentifierTableForThisDataBaseModelChangeSet(Base, models.ModelBase): """Represents the state of a given identifier.""" - @declarative.declared_attr + @orm.declared_attr def __table_args__(cls): return ( sqlalchemy.schema.UniqueConstraint( diff --git a/cloudkitty/storage_state/alembic/versions/c50ed2c19204_update_storage_state_constraint.py b/cloudkitty/storage_state/alembic/versions/c50ed2c19204_update_storage_state_constraint.py index d87b9e5e..130650bf 100644 --- a/cloudkitty/storage_state/alembic/versions/c50ed2c19204_update_storage_state_constraint.py +++ b/cloudkitty/storage_state/alembic/versions/c50ed2c19204_update_storage_state_constraint.py @@ -24,7 +24,7 @@ from alembic import op from oslo_db.sqlalchemy import models import sqlalchemy -from sqlalchemy.ext import declarative +from sqlalchemy import orm # revision identifiers, used by Alembic. revision = 'c50ed2c19204' @@ -32,7 +32,7 @@ down_revision = 'd9d103dd4dcf' branch_labels = None depends_on = None -Base = declarative.declarative_base() +Base = orm.declarative_base() def upgrade(): @@ -53,7 +53,7 @@ def upgrade(): class IdentifierTableForThisDataBaseModelChangeSet(Base, models.ModelBase): """Represents the state of a given identifier.""" - @declarative.declared_attr + @orm.declared_attr def __table_args__(cls): return ( sqlalchemy.schema.UniqueConstraint( diff --git a/cloudkitty/storage_state/models.py b/cloudkitty/storage_state/models.py index 55cff8f8..2f339a98 100644 --- a/cloudkitty/storage_state/models.py +++ b/cloudkitty/storage_state/models.py @@ -15,9 +15,9 @@ # from oslo_db.sqlalchemy import models import sqlalchemy -from sqlalchemy.ext import declarative +from sqlalchemy import orm -Base = declarative.declarative_base() +Base = orm.declarative_base() def to_string_selected_fields(object_to_print, fields=[]): @@ -31,7 +31,7 @@ def to_string_selected_fields(object_to_print, fields=[]): class IdentifierState(Base, models.ModelBase): """Represents the state of a given identifier.""" - @declarative.declared_attr + @orm.declared_attr def __table_args__(cls): return ( sqlalchemy.schema.UniqueConstraint( @@ -74,7 +74,7 @@ class IdentifierState(Base, models.ModelBase): class ReprocessingScheduler(Base, models.ModelBase): """Represents the reprocessing scheduler table.""" - @declarative.declared_attr + @orm.declared_attr def __table_args__(cls): return ( sqlalchemy.schema.PrimaryKeyConstraint('id'), diff --git a/requirements.txt b/requirements.txt index 56b61bea..cf2bab68 100644 --- a/requirements.txt +++ b/requirements.txt @@ -24,7 +24,7 @@ oslo.policy>=4.5.0 # Apache-2.0 oslo.utils>=4.7.0 # Apache-2.0 oslo.upgradecheck>=1.3.0 # Apache-2.0 python-dateutil>=2.8.0 # BSD -SQLAlchemy>=1.3.20 # MIT +SQLAlchemy>=1.4.0 # MIT stevedore>=3.2.2 # Apache-2.0 tooz>=2.7.1 # Apache-2.0 voluptuous>=0.12.0 # BSD License