sqlalchemy: migration error when running db-sync

Bug #1186283 reported by gordon chung
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ceilometer
Fix Released
Undecided
Unassigned

Bug Description

using mysql,
1) create database ceilometer;
2) run ./bin/ceilometer-dbsync

i get the following error on last migration:

2013-05-31 10:45:19.619 9409 CRITICAL ceilometer [-] (OperationalError) (1005, "Can't create table 'ceilometer.event' (errno: 150)") '\nCREATE TABLE event (\n\tid INTEGER NOT NULL AUTO_INCREMENT, \n\tgenerated FLOAT, \n\tunique_name_id INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(unique_name_id) REFERENCES unique_name (id)\n)\n\n' ()
2013-05-31 10:45:19.619 9409 TRACE ceilometer Traceback (most recent call last):
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "./bin/ceilometer-dbsync", line 33, in <module>
2013-05-31 10:45:19.619 9409 TRACE ceilometer storage.get_connection(cfg.CONF).upgrade()
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/opt/stack/ceilometer/ceilometer/storage/impl_sqlalchemy.py", line 142, in upgrade
2013-05-31 10:45:19.619 9409 TRACE ceilometer migration.db_sync(self.session.get_bind(), version=version)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/opt/stack/ceilometer/ceilometer/storage/sqlalchemy/migration.py", line 72, in db_sync
2013-05-31 10:45:19.619 9409 TRACE ceilometer return versioning_api.upgrade(engine, repository, version)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 186, in upgrade
2013-05-31 10:45:19.619 9409 TRACE ceilometer return _migrate(url, repository, version, upgrade=True, err=err, **opts)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "<string>", line 2, in _migrate
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/opt/stack/ceilometer/ceilometer/storage/sqlalchemy/migration.py", line 39, in patched_with_engine
2013-05-31 10:45:19.619 9409 TRACE ceilometer return f(*a, **kw)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 366, in _migrate
2013-05-31 10:45:19.619 9409 TRACE ceilometer schema.runchange(ver, change, changeset.step)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/lib/python2.7/dist-packages/migrate/versioning/schema.py", line 91, in runchange
2013-05-31 10:45:19.619 9409 TRACE ceilometer change.run(self.engine, step)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/lib/python2.7/dist-packages/migrate/versioning/script/py.py", line 145, in run
2013-05-31 10:45:19.619 9409 TRACE ceilometer script_func(engine)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/opt/stack/ceilometer/ceilometer/storage/sqlalchemy/migrate_repo/versions/008_add_events.py", line 55, in upgrade
2013-05-31 10:45:19.619 9409 TRACE ceilometer i.create()
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/schema.py", line 593, in create
2013-05-31 10:45:19.619 9409 TRACE ceilometer checkfirst=checkfirst)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2302, in _run_visitor
2013-05-31 10:45:19.619 9409 TRACE ceilometer conn._run_visitor(visitorcallable, element, **kwargs)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1972, in _run_visitor
2013-05-31 10:45:19.619 9409 TRACE ceilometer **kwargs).traverse_single(element)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 106, in traverse_single
2013-05-31 10:45:19.619 9409 TRACE ceilometer return meth(obj, **kw)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/ddl.py", line 86, in visit_table
2013-05-31 10:45:19.619 9409 TRACE ceilometer self.connection.execute(schema.CreateTable(table))
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1449, in execute
2013-05-31 10:45:19.619 9409 TRACE ceilometer params)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1542, in _execute_ddl
2013-05-31 10:45:19.619 9409 TRACE ceilometer compiled
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1698, in _execute_context
2013-05-31 10:45:19.619 9409 TRACE ceilometer context)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1691, in _execute_context
2013-05-31 10:45:19.619 9409 TRACE ceilometer context)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 331, in do_execute
2013-05-31 10:45:19.619 9409 TRACE ceilometer cursor.execute(statement, parameters)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
2013-05-31 10:45:19.619 9409 TRACE ceilometer self.errorhandler(self, exc, value)
2013-05-31 10:45:19.619 9409 TRACE ceilometer File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
2013-05-31 10:45:19.619 9409 TRACE ceilometer raise errorclass, errorvalue
2013-05-31 10:45:19.619 9409 TRACE ceilometer OperationalError: (OperationalError) (1005, "Can't create table 'ceilometer.event' (errno: 150)") '\nCREATE TABLE event (\n\tid INTEGER NOT NULL AUTO_INCREMENT, \n\tgenerated FLOAT, \n\tunique_name_id INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(unique_name_id) REFERENCES unique_name (id)\n)\n\n' ()

gordon chung (chungg)
description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ceilometer (master)

Reviewed: https://review.openstack.org/31545
Committed: http://github.com/openstack/ceilometer/commit/99702d47667245d62a6868608789a04b4a84f66b
Submitter: Jenkins
Branch: master

commit 99702d47667245d62a6868608789a04b4a84f66b
Author: Gordon Chung <email address hidden>
Date: Mon Jun 3 14:49:38 2013 -0400

    sqlalchemy: migration error when running db-sync

    migration incorrectly sorted order of tables for Events causing Event
    and Trait tables to be generated before unique_name table which both tables
    require

    Change-Id: I6fe7ceb0905ace3993116c6a274b6c39e11554bf
    Fixes:Bug #1186283

Changed in ceilometer:
status: New → Fix Committed
Thierry Carrez (ttx)
Changed in ceilometer:
milestone: none → havana-2
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in ceilometer:
milestone: havana-2 → 2013.2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.