[openstack-dev] [Ceilometer] Need help with Alembic...

Jay Pipes jaypipes at gmail.com
Mon Aug 26 19:15:37 UTC 2013


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/impl_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 at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list