Hi,
After trying to install a new Glance server from scratch on Ubuntu Precise DB migration failed:
$ apt-get install glance-api glance-registry mysql-server python-mysqldb
Edit Glance conf files and create 'glance' database
$ service glance-registry restart
$ service glance-api restart
$ glance-manage version_control 1
$ glance-manage db_sync
Traceback (most recent call last):
File "/usr/bin/glance-manage", line 122, in <module>
main()
File "/usr/bin/glance-manage", line 118, in main
dispatch_cmd(conf, args)
File "/usr/bin/glance-manage", line 93, in dispatch_cmd
cmd_func(conf, args)
File "/usr/bin/glance-manage", line 81, in do_db_sync
glance.registry.db.migration.db_sync(conf, version, current_version)
File "/usr/lib/python2.7/dist-packages/glance/registry/db/migration.py", line 141, in db_sync
upgrade(conf, version=version)
File "/usr/lib/python2.7/dist-packages/glance/registry/db/migration.py", line 67, in upgrade
return versioning_api.upgrade(sql_connection, repo_path, version)
File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 186, in upgrade
return _migrate(url, repository, version, upgrade=True, err=err, **opts)
File "<string>", line 2, in _migrate
File "/usr/lib/python2.7/dist-packages/migrate/versioning/util/__init__.py", line 159, in with_engine
return f(*a, **kw)
File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 366, in _migrate
schema.runchange(ver, change, changeset.step)
File "/usr/lib/python2.7/dist-packages/migrate/versioning/schema.py", line 91, in runchange
change.run(self.engine, step)
File "/usr/lib/python2.7/dist-packages/migrate/versioning/script/py.py", line 145, in run
script_func(engine)
File "/usr/lib/python2.7/dist-packages/glance/registry/db/migrate_repo/versions/002_add_image_properties_table.py", line 57, in upgrade
create_tables(tables)
File "/usr/lib/python2.7/dist-packages/glance/registry/db/migrate_repo/schema.py", line 96, in create_tables
table.create()
File "/usr/lib/python2.7/dist-packages/sqlalchemy/schema.py", line 564, in create
checkfirst=checkfirst)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2234, in _run_visitor
conn._run_visitor(visitorcallable, element, **kwargs)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1904, in _run_visitor
**kwargs).traverse_single(element)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 86, in traverse_single
return meth(obj, **kw)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/ddl.py", line 86, in visit_table
self.connection.execute(schema.CreateTable(table))
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1405, in execute
params)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1496, in _execute_ddl
compiled
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1646, in _execute_context
context)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1639, in _execute_context
context)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 330, in do_execute
cursor.execute(statement, parameters)
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
sqlalchemy.exc.OperationalError: (OperationalError) (1005, "Can't create table 'glance.image_properties' (errno: 150)") '\nCREATE TABLE image_properties (\n\tid INTEGER NOT NULL AUTO_INCREMENT, \n\timage_id INTEGER NOT NULL, \n\t`key` VARCHAR(255) NOT NULL, \n\tvalue TEXT, \n\tcreated_at DATETIME NOT NULL, \n\tupdated_at DATETIME, \n\tdeleted_at DATETIME, \n\tdeleted BOOL NOT NULL, \n\tPRIMARY KEY (id), \n\tUNIQUE (image_id, `key`), \n\tFOREIGN KEY(image_id) REFERENCES images (id), \n\tCHECK (deleted IN (0, 1))\n)ENGINE=InnoDB\n\n' ()
Package versions:
ii glance-api 2012.1+stable~20120608-5462295-0ubuntu2.2 OpenStack Image Registry and Delivery Service - API
ii glance-client 2012.1+stable~20120608-5462295-0ubuntu2.2 OpenStack Image Registry and Delivery Service - Registry
ii glance-common 2012.1+stable~20120608-5462295-0ubuntu2.2 OpenStack Image Registry and Delivery Service - Common
ii glance-registry 2012.1+stable~20120608-5462295-0ubuntu2.2 OpenStack Image Registry and Delivery Service - Registry
ii python-glance 2012.1+stable~20120608-5462295-0ubuntu2.2 OpenStack Image Registry and Delivery Service - Python library
errno 150 is foreign key error, so I tried creating that table manually after disabling foreign keys and everything worked as expected.
Bye
Status changed to 'Confirmed' because the bug affects multiple users.