On 08/26/2013 03:40 PM, Herndon, John Luke (HPCS - Ft. Collins) wrote:
Jay -
It looks there is an error in the migration script that causes it to abort:
AttributeError: 'ForeignKeyConstraint' object has no attribute 'drop'
My guess is the migration runs on the first test, creates event types
table fine, but exits with the above error, so migration is not
"complete". Thus every subsequent test tries to migrate the db, and
notices that event types already exists.
I'd corrected that particular mistake and pushed an updated migration
script.
Best,
-jay
-john
On 8/26/13 1:15 PM, "Jay Pipes" <jaypi...@gmail.com> wrote:
I just noticed that every single test case for SQL-driver storage is
executing every single migration upgrade before every single test case
run:
https://github.com/openstack/ceilometer/blob/master/ceilometer/tests/db.py
#L46
https://github.com/openstack/ceilometer/blob/master/ceilometer/storage/imp
l_sqlalchemy.py#L153
instead of simply creating a new database schema from the models in the
current source code base using a call to sqlalchemy.MetaData.create_all().
This results in re-running migrations over and over again, instead of
having dedicated migration tests that would test each migration
individually, as is the case in projects like Glance...
Is this intentional?
Best,
-jay
On 08/26/2013 02:59 PM, Sandy Walsh wrote:
I'm getting the same problem with a different migration (mine is
complaining that a column already exists)
http://paste.openstack.org/show/44512/
I've compared it to the other migrations and it seems fine.
-S
On 08/26/2013 02:34 PM, Jay Pipes wrote:
Hey all,
I'm trying to figure out what is going wrong with my code for this
patch:
https://review.openstack.org/41316
I had previously added a sqlalchemy-migrate migration script to add an
event_type table, and had that working, but then was asked to instead
use Alembic for migrations. So, I removed the sqlalchemy-migrate
migration file and added an Alembic migration [1].
Unfortunately, I am getting the following error when running tests:
OperationalError: (OperationalError) table event_type already exists
u'\nCREATE TABLE event_type (\n\tid INTEGER NOT NULL, \n\t"desc"
VARCHAR(255), \n\tPRIMARY KEY (id), \n\tUNIQUE ("desc")\n)\n\n' ()
The migration adds the event_type table. I've seen this error occur
before when using SQLite due to SQLite's ALTER TABLE statement not
allowing the rename of a column. In the sqlalchemy-migrate migration, I
had a specialized SQLite migration upgrade [2] and downgrade [3]
script,
but I'm not sure how I am supposed to handle this in Alembic. Could
someone help me out?
Thanks,
-jay
[1]
https://review.openstack.org/#/c/41316/16/ceilometer/storage/sqlalchemy/
alembic/versions/49036daaaafd_add_event_types.py
[2]
https://review.openstack.org/#/c/41316/14/ceilometer/storage/sqlalchemy/
migrate_repo/versions/013_sqlite_upgrade.sql
[3]
https://review.openstack.org/#/c/41316/14/ceilometer/storage/sqlalchemy/
migrate_repo/versions/013_sqlite_downgrade.sql
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev