← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1365436] Re: Database schema differs from migrations

 

** Changed in: glance
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Glance.
https://bugs.launchpad.net/bugs/1365436

Title:
  Database schema differs from migrations

Status in OpenStack Image Registry and Delivery Service (Glance):
  Fix Released

Bug description:
  As models and migrations don't have any logical relation in code, so
  differences are possible. Furthermore in most of cases differences
  exists.  Possible solution -- adding a new migration and altering a
  model to remove differences.  Next, tests for differences between
  models and migrations should be added.

  Patch that removes diff https://review.openstack.org/#/c/113916/
  Adding the sync tests https://review.openstack.org/#/c/110683/

  Diff example from glance:
  AssertionError: Models and migration scripts aren't in sync:
  [ ( 'remove_table',
      Table('migrate_version', MetaData(bind=None), Column('repository_id', VARCHAR(length=250), table=<migrate_version>, primary_key=True, nullable=False), Column('repository_path', TEXT(), table=<migrate_version>), Column('version', INTEGER(), table=<migrate_version>), schema=None)),
    [ ( 'modify_default',
        None,
        'image_locations',
        'status',
        { 'existing_nullable': False,
          'existing_type': VARCHAR(length=30)},
        u"'active'::character varying",
        None)],
    [ ( 'modify_nullable',
        None,
        'image_locations',
        'updated_at',
        { 'existing_server_default': None,
          'existing_type': TIMESTAMP()},
        True,
        False)],
    [ ( 'modify_nullable',
        None,
        'image_members',
        'status',
        { 'existing_server_default': None,
          'existing_type': VARCHAR(length=20)},
        True,
        False)],
    [ ( 'modify_nullable',
        None,
        'image_members',
        'updated_at',
        { 'existing_server_default': None,
          'existing_type': TIMESTAMP()},
        True,
        False)],
    [ ( 'modify_nullable',
        None,
        'image_properties',
        'updated_at',
        { 'existing_server_default': None,
          'existing_type': TIMESTAMP()},
        True,
        False)],
    ( 'remove_index',
      Index('ix_image_properties_image_id_name', Column('image_id', VARCHAR(length=36), ForeignKey(u'images.id'), table=<image_properties>, nullable=False), Column('name', VARCHAR(length=255), table=<image_properties>, nullable=False))),
    ( 'add_constraint',
      UniqueConstraint(Column('image_id', String(length=36), ForeignKey('images.id'), table=<image_properties>, nullable=False), Column('name', String(length=255), table=<image_properties>, nullable=False))),
    [ ( 'modify_nullable',
        None,
        'image_tags',
        'updated_at',
        { 'existing_server_default': None,
          'existing_type': TIMESTAMP()},
        True,
        False)],
    [ ( 'modify_default',
        None,
        'images',
        'id',
        { 'existing_nullable': False,
          'existing_type': VARCHAR(length=36)},
        u"nextval('images_id_seq'::regclass)",
        None)],
    [ ( 'modify_nullable',
        None,
        'images',
        'protected',
        { 'existing_server_default': None,
          'existing_type': BOOLEAN()},
        True,
        False)],
    [ ( 'modify_nullable',
        None,
        'images',
        'updated_at',
        { 'existing_server_default': None,
          'existing_type': TIMESTAMP()},
        True,
        False)],
    [ ( 'modify_nullable',
        None,
        'tasks',
        'status',
        { 'existing_server_default': None,
          'existing_type': VARCHAR(length=30)},
        False,
        True)],
    [ ( 'modify_nullable',
        None,
        'tasks',
        'type',
        { 'existing_server_default': None,
          'existing_type': VARCHAR(length=30)},
        False,
        True)],
    [ ( 'modify_nullable',
        None,
        'tasks',
        'updated_at',
        { 'existing_server_default': None,
          'existing_type': TIMESTAMP()},
        True,
        False)]]

To manage notifications about this bug go to:
https://bugs.launchpad.net/glance/+bug/1365436/+subscriptions


References