I was running MAAS 3.6 using the snap, and upgraded to a manually built snap based on 3.8.
Now i’m trying to downgrade to 3.7.
- Downgrading
3.8→3.7didn’t work - Downgrading to
3.6works without any issues. - Upgrading
3.6→3.7fails with the same issue.
The issue is this:
- Run post-refresh hook of "maas" snap if present (run hook "post-refresh":
-----
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/script/revision.py", line 566, in get_revisions
return tuple(
^^^^^^
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/script/revision.py", line 567, in <genexpr>
self._revision_for_ident(rev_id, branch_label)
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/script/revision.py", line 638, in _revision_for_ident
raise ResolutionError(
alembic.script.revision.ResolutionError: No such revision or branch '0007'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/snap/maas/40925/bin/maas-region", line 8, in <module>
sys.exit(run())
^^^^^
File "/snap/maas/40925/lib/python3.12/site-packages/maasserver/region_script.py", line 81, in run
run_django(is_snap, is_devenv)
File "/snap/maas/40925/lib/python3.12/site-packages/maasserver/region_script.py", line 70, in run_django
management.execute_from_command_line()
File "/snap/maas/40925/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File "/snap/maas/40925/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/snap/maas/40925/usr/lib/python3/dist-packages/django/core/management/base.py", line 412, in run_from_argv
self.execute(*args, **cmd_options)
File "/snap/maas/40925/usr/lib/python3/dist-packages/django/core/management/base.py", line 458, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/snap/maas/40925/lib/python3.12/site-packages/maasserver/management/commands/dbupgrade.py", line 279, in handle
command.upgrade(alembic_cfg, "head")
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/command.py", line 403, in upgrade
script.run_env()
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/script/base.py", line 583, in run_env
util.load_python_file(self.dir, "env.py")
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/util/pyfiles.py", line 95, in load_python_file
module = load_module_py(module_id, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/util/pyfiles.py", line 113, in load_module_py
spec.loader.exec_module(module) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap_external>", line 995, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/snap/maas/40925/lib/python3.12/site-packages/maasservicelayer/db/alembic/env.py", line 116, in <module>
run_migrations_online()
File "/snap/maas/40925/lib/python3.12/site-packages/maasservicelayer/db/alembic/env.py", line 110, in run_migrations_online
asyncio.run(run_async_migrations())
File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/snap/maas/40925/lib/python3.12/site-packages/maasservicelayer/db/alembic/env.py", line 75, in run_async_migrations
await connection.run_sync(do_run_migrations)
File "/snap/maas/40925/usr/lib/python3/dist-packages/sqlalchemy/ext/asyncio/engine.py", line 886, in run_sync
return await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/snap/maas/40925/usr/lib/python3/dist-packages/sqlalchemy/util/_concurrency_py3k.py", line 203, in greenlet_spawn
result = context.switch(value)
^^^^^^^^^^^^^^^^^^^^^
File "/snap/maas/40925/lib/python3.12/site-packages/maasservicelayer/db/alembic/env.py", line 58, in do_run_migrations
context.run_migrations()
File "<string>", line 8, in run_migrations
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/runtime/environment.py", line 948, in run_migrations
self.get_context().run_migrations(**kw)
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/runtime/migration.py", line 615, in run_migrations
for step in self._migrations_fn(heads, self):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/command.py", line 392, in upgrade
return script._upgrade_revs(revision, rev)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/script/base.py", line 447, in _upgrade_revs
with self._catch_revision_errors(
File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/snap/maas/40925/usr/lib/python3/dist-packages/alembic/script/base.py", line 283, in _catch_revision_errors
raise util.CommandError(resolution) from re
alembic.util.exc.CommandError: Can't locate revision identified by '0007'
Traceback (most recent call last):
File "/snap/maas/40925/bin/maas", line 8, in <module>
sys.exit(main())
^^^^^^
File "/snap/maas/40925/lib/python3.12/site-packages/maascli/__init__.py", line 38, in main
options.execute(options)
File "/snap/maas/40925/lib/python3.12/site-packages/maascli/snap.py", line 433, in __call__
raise exc
File "/snap/maas/40925/lib/python3.12/site-packages/maascli/snap.py", line 430, in __call__
self.handle(options)
File "/snap/maas/40925/lib/python3.12/site-packages/maascli/snap.py", line 983, in handle
sys.exit(migrate_db())
^^^^^^^^^^^^
File "/snap/maas/40925/lib/python3.12/site-packages/maascli/snap.py", line 338, in migrate_db
subprocess.check_call(
File "/usr/lib/python3.12/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/snap/maas/40925/bin/maas-region', 'dbupgrade']' returned non-zero exit status 1.
-----)
Did I break my setup by upgrading to 3.8? Or is this salvageable?