我尝试按照这里描述的方式升级我的 MAAS 安装:在 ubuntu 14.04 上将 MAAS 从 1.5.4 升级到 1.7.0 或最新版本但更新过程中使用的其中一个 Python 脚本出现错误。我得到以下输出:
Setting up maas-region-controller (1.8.0+bzr4001-0ubuntu2~trusty1) ...
* Stopping web server apache2 *
* Restarting PostgreSQL 9.3 database server [ OK ]
Syncing...
Creating tables ...
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
Synced:
> django.contrib.auth
> django.contrib.contenttypes
> django.contrib.sessions
> django.contrib.sites
> django.contrib.messages
> django.contrib.staticfiles
> piston
> south
Not synced (use migrations):
- maasserver
- metadataserver
(use ./manage.py migrate to migrate these)
Running migrations for maasserver:
- Migrating forwards to 0138_perf_index_on_node_events.
> maasserver:0121_recompute_storage_size
Error in migration: maasserver:0121_recompute_storage_size
Traceback (most recent call last):
File "/usr/sbin/maas-region-admin", line 22, in <module>
management.execute_from_command_line()
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 285, in execute
output = self.handle(*args, **options)
File "/usr/lib/python2.7/dist-packages/south/management/commands/migrate.py", line 107, in handle
ignore_ghosts = ignore_ghosts,
File "/usr/lib/python2.7/dist-packages/south/migration/__init__.py", line 219, in migrate_app
success = migrator.migrate_many(target, workplan, database)
File "/usr/lib/python2.7/dist-packages/south/migration/migrators.py", line 235, in migrate_many
result = migrator.__class__.migrate_many(migrator, target, migrations, database)
File "/usr/lib/python2.7/dist-packages/south/migration/migrators.py", line 310, in migrate_many
result = self.migrate(migration, database)
File "/usr/lib/python2.7/dist-packages/south/migration/migrators.py", line 133, in migrate
result = self.run(migration)
File "/usr/lib/python2.7/dist-packages/south/migration/migrators.py", line 107, in run
return self.run_migration(migration)
File "/usr/lib/python2.7/dist-packages/south/migration/migrators.py", line 81, in run_migration
migration_function()
File "/usr/lib/python2.7/dist-packages/south/migration/migrators.py", line 57, in <lambda>
return (lambda: direction(orm))
File "/usr/lib/python2.7/dist-packages/maasserver/migrations/0121_recompute_storage_size.py", line 100, in forwards
node_details = get_probed_details(orm, [node.system_id])
File "/usr/lib/python2.7/dist-packages/maasserver/migrations/0121_recompute_storage_size.py", line 60, in get_probed_details
for system_id, script_output_name, b64data in results:
File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 96, in __iter__
self._fetch_all()
File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 854, in _fetch_all
self._result_cache = list(self.iterator())
File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 1068, in iterator
for row in self.query.get_compiler(self.db).results_iter():
File "/usr/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 710, in results_iter
for rows in self.execute_sql(MULTI):
File "/usr/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 781, in execute_sql
cursor.execute(sql, params)
File "/usr/lib/python2.7/dist-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
File "/usr/lib/python2.7/dist-packages/django/db/utils.py", line 99, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/lib/python2.7/dist-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "metadataserver_noderesult" does not exist
LINE 1: ..."."name", "metadataserver_noderesult"."data" FROM "metadatas...
^
之后,安装就在那里等待,我必须强行停止 apt-get。调用apt-get upgrade
会重复此操作。我也无法删除maas-region-controller
软件包,因为这样做会导致
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
这再次触发了安装并出现错误。
有没有办法修复这个安装?
答案1
经过多次尝试和错误后,我发现唯一的解决方案是卸载所有与 maas 相关的软件包dpkg -r
并从头开始重新安装 maas。