On 5/21/15 2:50 PM, Mike Bayer wrote:

Put another way, if I want to do a migration that someday, "over time", eventually, etc., will drop the "widget_status" table and merge it into the "widget" table, how do I write the "get_widget()" DB API call ? Same for just dropping a column. If we have to write code that will return the value of the old table / old column while it exists, how does that part work? Somewhere, there has to be code that in one case says: "query(Widget).join(WidgetStatus)" and in other case says "query(Widget)". You have to maintain *both* SQL queries at the same time?
OK I guess it is this: "Kilo queries Widget JOIN WidgetStatus while Liberty queries just Widget" - e.g. the two versions of the query are just in two different releases of the application. You need to run exclusively the old sqlalchemy/api.py version of the code before "contract" is run, that is, the new API / nova.objects runs against the old model code.

OK!   let me chew on that.


The good news is, online schema migrations does not invalidate all of Alembic's approach. Version files and fixed schema states are still essential for mere mortals. Openstack projects that aren't using oslo.objects will still need them.



__________________________________________________________________________
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