Add acquired_at column to glare_locks table

Change-Id: Ia0029a68de4b4f7098c8d3858a989d07382d3d10
This commit is contained in:
Mike Fedosin 2016-10-05 17:40:59 +03:00
parent 97b0da3afe
commit 4e85e9b5a5
3 changed files with 62 additions and 0 deletions

View File

@ -0,0 +1,51 @@
# Copyright 2016 OpenStack Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Add acquired_at column
Revision ID: 002
Revises: 001
Create Date: 2016-10-05 16:03:43.207147
"""
# revision identifiers, used by Alembic.
revision = '002'
down_revision = '001'
from alembic import op
import sqlalchemy as sa
def upgrade():
engine = op.get_bind()
if engine.dialect.dialect_description.startswith('sqlite'):
op.add_column(
'glare_artifact_locks',
sa.Column(
'acquired_at', sa.DateTime(), nullable=False,
server_default=sa.text('NOW'))
)
else:
op.add_column(
'glare_artifact_locks',
sa.Column(
'acquired_at', sa.DateTime(), nullable=False,
server_default=sa.text('NOW()'))
)
def downgrade():
op.drop_column('glare_artifact_locks', 'acquired_at')

View File

@ -242,6 +242,8 @@ class ArtifactLock(BASE, ArtifactBase):
__table_args__ = (
{'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'},)
id = Column(String(255), primary_key=True, nullable=False)
acquired_at = Column(
DateTime, nullable=False, default=lambda: timeutils.utcnow())
def register_models(engine):

View File

@ -132,6 +132,9 @@ class GlareMigrationsCheckers(object):
self.assertRaises(sqlalchemy.exc.NoSuchTableError,
db_utils.get_table, engine,
'glare_artifact_blobs')
self.assertRaises(sqlalchemy.exc.NoSuchTableError,
db_utils.get_table, engine,
'glare_artifact_locks')
def _check_001(self, engine, data):
artifacts_indices = [('ix_glare_artifact_name_and_version',
@ -207,6 +210,12 @@ class GlareMigrationsCheckers(object):
self.assert_table(engine, 'glare_artifact_locks', locks_indices,
locks_columns)
def _check_002(self, engine, data):
locks_indices = []
locks_columns = ['id', 'acquired_at']
self.assert_table(engine, 'glare_artifact_locks', locks_indices,
locks_columns)
class TestMigrationsMySQL(GlareMigrationsCheckers,
WalkVersionsMixin,