From 757a155ac6d656309bfd3b13d575870feae6efc6 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 2 Feb 2011 05:00:13 +0000 Subject: [PATCH] Adding migration for images table --- glance/registry/db/migrate_repo/manage.py | 2 +- glance/registry/db/migrate_repo/schema.py | 41 +++++++++++++++ .../versions/001_add_images_table.py | 52 +++++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 glance/registry/db/migrate_repo/schema.py create mode 100644 glance/registry/db/migrate_repo/versions/001_add_images_table.py diff --git a/glance/registry/db/migrate_repo/manage.py b/glance/registry/db/migrate_repo/manage.py index 2a928c84c9..8ebb827613 100644 --- a/glance/registry/db/migrate_repo/manage.py +++ b/glance/registry/db/migrate_repo/manage.py @@ -1,3 +1,3 @@ #!/usr/bin/env python from migrate.versioning.shell import main -main(debug='False') +main(debug='False', repository='.') diff --git a/glance/registry/db/migrate_repo/schema.py b/glance/registry/db/migrate_repo/schema.py new file mode 100644 index 0000000000..c4563c72e2 --- /dev/null +++ b/glance/registry/db/migrate_repo/schema.py @@ -0,0 +1,41 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2011 OpenStack LLC. +# All Rights Reserved. +# +# 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. + +""" +Various conveniences used for migration scripts +""" + +import sqlalchemy.types + + +String = lambda length: sqlalchemy.types.String( + length=length, convert_unicode=False, assert_unicode=None, + unicode_error=None, _warn_on_bytestring=False) + + +Text = lambda: sqlalchemy.types.Text( + length=None, convert_unicode=False, assert_unicode=None, + unicode_error=None, _warn_on_bytestring=False) + + +Boolean = lambda: sqlalchemy.types.Boolean(create_constraint=True, name=None) + + +DateTime = lambda: sqlalchemy.types.DateTime(timezone=False) + + +Integer = lambda: sqlalchemy.types.Integer() diff --git a/glance/registry/db/migrate_repo/versions/001_add_images_table.py b/glance/registry/db/migrate_repo/versions/001_add_images_table.py new file mode 100644 index 0000000000..54d9171e74 --- /dev/null +++ b/glance/registry/db/migrate_repo/versions/001_add_images_table.py @@ -0,0 +1,52 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2011 OpenStack LLC. +# All Rights Reserved. +# +# 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. + +import logging +from sqlalchemy.schema import (MetaData, Table, Column) + +from glance.registry.db.migrate_repo.schema import (String, + Boolean, + Text, + DateTime, + Integer) + + +meta = MetaData() + + +images = Table('images', meta, + Column('id', Integer(), primary_key=True, nullable=False), + Column('name', String(255)), + Column('type', String(30)), + Column('size', Integer()), + Column('status', String(30), nullable=False), + Column('is_public', Boolean(), nullable=False, default=False), + Column('location', Text()), + Column('created_at', DateTime(), nullable=False), + Column('updated_at', DateTime()), + Column('deleted_at', DateTime()), + Column('deleted', Boolean(), nullable=False, default=False)) + + +def upgrade(migrate_engine): + meta.bind = migrate_engine + images.create() + + +def downgrade(migrate_engine): + meta.bind = migrate_engine + images.drop()