Description
After hitting an error part way through running qiita-env make --no-load-ontologies
on a clean qiita install (because the redis-server
call hadn't been made), I got the (expected) error telling me that my qiita db already existed:
QiitaEnvironmentError: Database qiita_test already present on the system. You can drop it by running 'qiita-env drop'
I went ahead and ran qiita-env drop
, but this produced its own set of errors:
(qiita) qiita % qiita-env drop
Traceback (most recent call last):
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/qiita_db/sql_connection.py", line 256, in _execute
cur.execute(sql, sql_args)
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/psycopg2/extras.py", line 146, in execute
return super().execute(query, vars)
psycopg2.errors.UndefinedTable: relation "settings" does not exist
LINE 1: SELECT test FROM settings
^
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/qiita_db/sql_connection.py", line 199, in _raise_execution_error
raise ValueError(
ValueError: Error running SQL: UNDEFINED_TABLE. MSG: relation "settings" does not exist
LINE 1: SELECT test FROM settings
^
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Applications/miniconda3/envs/qiita/bin/qiita-env", line 113, in <module>
env()
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/Applications/miniconda3/envs/qiita/bin/qiita-env", line 49, in drop
qdb.environment_manager.drop_environment(ask_for_confirmation)
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/qiita_db/environment_manager.py", line 277, in drop_environment
is_test_environment = qdb.sql_connection.TRN.execute_fetchflatten()[0]
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/qiita_db/sql_connection.py", line 49, in wrapper
return func(self, *args, **kwargs)
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/qiita_db/sql_connection.py", line 389, in execute_fetchflatten
return list(chain.from_iterable(self.execute()[idx]))
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/qiita_db/sql_connection.py", line 49, in wrapper
return func(self, *args, **kwargs)
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/qiita_db/sql_connection.py", line 313, in execute
return self._execute()
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/qiita_db/sql_connection.py", line 260, in _execute
self._raise_execution_error(sql, sql_args, e)
File "/Applications/miniconda3/envs/qiita/lib/python3.9/site-packages/qiita_db/sql_connection.py", line 205, in _raise_execution_error
raise ValueError("Error running SQL query: %s" % str(error))
ValueError: Error running SQL query: Error running SQL: UNDEFINED_TABLE. MSG: relation "settings" does not exist
LINE 1: SELECT test FROM settings
^
I went into pgAdmin and dropped the qiita_test db, as I have done in the past, and then was able to (re)run qiita-env make --no-load-ontologies
without a problem (other than issue 3313 , which is non-fatal). Nonetheless, if the software tells the user to run qiita-env drop
to fix an error, it would be preferable if doing that worked :)