<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<br>
<div>
<div>On Apr 14, 2014, at 11:54 AM, Salvatore Orlando <<a href="mailto:sorlando@nicira.com">sorlando@nicira.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<p style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
1) Specify that all migrations must run for every plugin (*) unless they are really introducing schemas which are specific to a particular technology (such as uuid mappings between neutron and backed)</p>
<p style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
This approach will probably ensure all the important migrations are executed.<br>
However, it is not back portable, unless deployers decide to tear down and rebuild their databases from scratch, which is unlikely to happen.</p>
<p style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
To this aim "recovery" scripts might be provided to sync up the schema state of specific service plugins with the current alembic migration registered in the neutron database; or appropriate migrations can be added in the path to fix database schemas.</p>
<p style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
(*) Neutron does not address, and probably never will address, switching from plugin "a" to "b" for a given service (e.g.: core features).</p>
</blockquote>
</div>
<div>This option has several additional problems because of the way plugins/drivers are conditionally imported and packaged.  As a result, auto generation of schema (inadvertent drop for schema) or even validation of existing models vs the the migration will
 fail because models are not imported unless part of the configuration.</div>
<div><br>
</div>
<div>mark</div>
<div><br>
</div>
</body>
</html>