[neutron] neutron-db-manage multiple heads

Eugen Block eblock at nde.ag
Fri Nov 25 12:57:52 UTC 2022


Hi *,

I'd like to ask you for advice on how to clean up my neutron db. At  
some point (which I don't know exactly, probably train) my neutron  
database got inconsistent, apparently one of the upgrades did not go  
as planned. The interesting thing is that the database still works, I  
just upgraded from ussuri to victoria where that issue popped up again  
during 'neutron-db-manage upgrade --expand', I'll add the information  
at the end of this email. Apparently, I have multiple heads, and one  
of them is from train, it seems as if I never ran --contract (or it  
failed and I didn't notice).
Just some additional information what I did with this database: this  
cloud started out as a test environment with a single control node and  
then became a production environment. About two and a half years ago  
we decided to reinstall this cloud with version ussuri and import the  
databases. I had a virtual machine in which I upgraded the database  
dump from production to the latest versions at that time. That all  
worked quite well, I only didn't notice that something was missing.  
Now that I finished the U --> V upgrade I want to fix this  
inconsistency, I just have no idea how to do it. As I'm not sure how  
all the neutron-db-manage commands work exactly I'd like to ask for  
some guidance. For example, could the "stamp" command possibly help?  
Or how else can I get rid of the train head and/or how to get the  
train revision to "contract" so I can finish the upgrade and contract  
the victoria revision? I can paste the whole neutron-db history if  
necessary (neutron-db-manage history), please let me know what  
information would be required to get to the bottom of this.
Any help is greatly appreciated!

Thanks!
Eugen


---snip---
controller01:~ # neutron-db-manage upgrade --expand
[...]
alembic.script.revision.MultipleHeads: Multiple heads are present for  
given argument 'expand at head'; 633d74ebbc4b, I38991de2b4

controller01:~ # neutron-db-manage current --verbose
   Running current for neutron ...
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
Current revision(s) for mysql+pymysql://neutron:XXXXX@controller.fqdn/neutron:
Rev: bebe95aae4d4 (head)
Parent: b5344a66e818
Branch names: contract
Path:  
/usr/lib/python3.6/site-packages/neutron/db/migration/alembic_migrations/versions/ussuri/contract/bebe95aae4d4_.py

Rev: 633d74ebbc4b (head)
Parent: 6c9eb0469914
Branch names: expand
Path:  
/usr/lib/python3.6/site-packages/neutron/db/migration/alembic_migrations/versions/train/expand/633d74ebbc4b_.py

Rev: I38991de2b4 (head)
Parent: 49d8622c5221
Branch names: expand
Path:  
/usr/lib/python3.6/site-packages/neutron/db/migration/alembic_migrations/versions/victoria/expand/I38991de2b4_source_and_destination_ip_prefix_neutron_metering_rule.py

   OK
---snip---




More information about the openstack-discuss mailing list