> Here's the big thing that you're missing: no data migrations are allowed > any more in DB migration scripts.
Correct, online-schema-migrations aside, we're trying to avoid ever doing data migrations in schema migrations anymore. > In this way, data migrations occur *over time* in the nova.objects > classes, and the contract phase can be delayed indefinitely until such a > point that the DBA has determined all data has been properly migrated. Right. We just pivoted flavors from one place and format to another place and format in kilo, and we did it without touching any data inside the schema migration. Flavors get converted over time, but we also provide a nova-manage command that allows pushing along instances that aren't being touched. This allows the DBA to make sure that everything gets migrated online before potentially running the contract phase (if we had online migrations now). If this flavor thing ended up vacating a column, we could drop that column in lemming and require all the online migrations to be performed before we upgrade. That's precisely why we landed this as our first lemming migration: https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/migrate_repo/versions/291_enforce_flavors_migrated.py#L29-34 The flavor thing didn't actually, so we have nothing to drop, but in the case of another change (like the example earlier in the thread) you do. --Dan
signature.asc
Description: OpenPGP digital signature
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev