I tried to set up teamvault on a fresh Ubuntu 18.04 box with the current master (c00ad68).
When running teamvault upgrade, the migration for the settings app fails because of a missing relation settings_setting.
Full stacktrace
``` python
$ sudo teamvault upgrade
### Running migrations...
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
psycopg2.ProgrammingError: relation "settings_setting" does not exist
LINE 1: ...s_setting"."key", "settings_setting"."value" FROM "settings_...
^
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/bin/teamvault", line 11, in
load_entry_point('teamvault==0.7.3', 'console_scripts', 'teamvault')()
File "/usr/local/lib/python3.6/dist-packages/teamvault/cli.py", line 60, in main
pargs.func(pargs)
File "/usr/local/lib/python3.6/dist-packages/teamvault/cli.py", line 91, in upgrade
execute_from_command_line(["", "migrate", "--noinput", "-v", "3", "--traceback"])
File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 347, in execute
django.setup()
File "/usr/local/lib/python3.6/dist-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python3.6/dist-packages/django/apps/registry.py", line 120, in populate
app_config.ready()
File "/usr/local/lib/python3.6/dist-packages/teamvault/apps/settings/__init__.py", line 15, in ready
config.configure_teamvault_secret_key(parsed_config, settings)
File "/usr/local/lib/python3.6/dist-packages/teamvault/apps/settings/config.py", line 171, in configure_teamvault_secret_key
checksum = Setting.get("fernet_key_hash", default=None)
File "/usr/local/lib/python3.6/dist-packages/teamvault/apps/settings/models.py", line 20, in get
return cls.objects.get(key=key).value
File "/usr/local/lib/python3.6/dist-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py", line 397, in get
num = len(clone)
File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py", line 254, in __len__
self._fetch_all()
File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py", line 1179, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py", line 54, in __iter__
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
File "/usr/local/lib/python3.6/dist-packages/django/db/models/sql/compiler.py", line 1063, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 68, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.6/dist-packages/django/db/utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "settings_setting" does not exist
LINE 1: ...s_setting"."key", "settings_setting"."value" FROM "settings_...
^
```
I'm not completely sure why this happens, but apparently Setting.get("fernet_key_hash", default=None) is called before the table is created and its absence does not trigger the default case. I'm confused because these parts of the settings app haven't been changed recently.
I tried to set up teamvault on a fresh Ubuntu 18.04 box with the current master (c00ad68).
When running
teamvault upgrade
, the migration for the settings app fails because of a missing relationsettings_setting
.Full stacktrace
``` python $ sudo teamvault upgrade ### Running migrations... Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 85, in _execute return self.cursor.execute(sql, params) psycopg2.ProgrammingError: relation "settings_setting" does not exist LINE 1: ...s_setting"."key", "settings_setting"."value" FROM "settings_... ^ The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/bin/teamvault", line 11, inI'm not completely sure why this happens, but apparently
Setting.get("fernet_key_hash", default=None)
is called before the table is created and its absence does not trigger the default case. I'm confused because these parts of the settings app haven't been changed recently.