> 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

Attachment: 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

Reply via email to