mobidic / SEAL

SEAL db - Simple, Efficient And Lite database for NGS
GNU General Public License v3.0
8 stars 1 forks source link

Error while initializing the database #26

Open Char-Al opened 1 year ago

Char-Al commented 1 year ago

When I try to initialize DB I got an error on import :

$ python insertdb.py
DROP DATABASE
CREATE DATABASE
[2022-11-18 09:08:23,700] INFO in __init__: <Config {'ENV': 'development', 'DEBUG': True, 'TESTING': False, 'PROPAGATE_EXCEPTIONS': None, 'PRESERVE_CONTEXT_ON_EXCEPTION': None, 'SECRET_KEY': '78486cd05859fc8c6baa29c430f06638', 'PERMANENT_SESSION_LIFETIME': datetime.timedelta(days=31), 'USE_X_SENDFILE': False, 'SERVER_NAME': None, 'APPLICATION_ROOT': '/', 'SESSION_COOKIE_NAME': 'session', 'SESSION_COOKIE_DOMAIN': None, 'SESSION_COOKIE_PATH': None, 'SESSION_COOKIE_HTTPONLY': True, 'SESSION_COOKIE_SECURE': False, 'SESSION_COOKIE_SAMESITE': None, 'SESSION_REFRESH_EACH_REQUEST': True, 'MAX_CONTENT_LENGTH': None, 'SEND_FILE_MAX_AGE_DEFAULT': datetime.timedelta(seconds=43200), 'TRAP_BAD_REQUEST_ERRORS': None, 'TRAP_HTTP_EXCEPTIONS': False, 'EXPLAIN_TEMPLATE_LOADING': False, 'PREFERRED_URL_SCHEME': 'http', 'JSON_AS_ASCII': True, 'JSON_SORT_KEYS': True, 'JSONIFY_PRETTYPRINT_REGULAR': False, 'JSONIFY_MIMETYPE': 'application/json', 'TEMPLATES_AUTO_RELOAD': None, 'MAX_COOKIE_SIZE': 4093, 'SQLALCHEMY_DATABASE_URI': 'postgresql:///seal', 'SQLALCHEMY_TRACK_MODIFICATIONS': True, 'SCHEDULER_API_ENABLED': True, 'SCHEDULER_JOB_DEFAULTS': {'coalesce': False, 'max_instances': 2}, 'API_KEY_MD': 'oX_TsPOBHM7Nm39QHSCO5oIQCE5hxEKIJTJZ2IT_56I', 'SQLALCHEMY_BINDS': None, 'SQLALCHEMY_NATIVE_UNICODE': None, 'SQLALCHEMY_ECHO': False, 'SQLALCHEMY_RECORD_QUERIES': None, 'SQLALCHEMY_POOL_SIZE': None, 'SQLALCHEMY_POOL_TIMEOUT': None, 'SQLALCHEMY_POOL_RECYCLE': None, 'SQLALCHEMY_MAX_OVERFLOW': None, 'SQLALCHEMY_COMMIT_ON_TEARDOWN': False, 'SQLALCHEMY_ENGINE_OPTIONS': {}, 'WTF_CSRF_ENABLED': True, 'WTF_CSRF_CHECK_DEFAULT': True, 'WTF_CSRF_METHODS': {'PATCH', 'POST', 'PUT', 'DELETE'}, 'WTF_CSRF_FIELD_NAME': 'csrf_token', 'WTF_CSRF_HEADERS': ['X-CSRFToken', 'X-CSRF-Token'], 'WTF_CSRF_TIME_LIMIT': 3600, 'WTF_CSRF_SSL_STRICT': True}>
Traceback (most recent call last):
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1901, in _execute_context
    cursor, statement, parameters, context
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
    cursor.execute(statement, parameters)
psycopg2.errors.UndefinedTable: relation "team" does not exist
LINE 2: FROM team
             ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "insertdb.py", line 6, in <module>
    from seal import db, app, bcrypt
  File "/home/SEAL/seal/seal/__init__.py", line 50, in <module>
    from seal import routes
  File "/home/SEAL/seal/seal/routes.py", line 13, in <module>
    from seal.forms import LoginForm, UpdateAccountForm, UpdatePasswordForm, UploadVariantForm, UploadPanelForm, AddCommentForm, SaveFilterForm
  File "/home/SEAL/seal/seal/forms.py", line 117, in <module>
    class UploadPanelForm(FlaskForm):
  File "/home/SEAL/seal/seal/forms.py", line 126, in UploadPanelForm
    teams_choices = [(team.id, team.teamname) for team in Team.query.all()]
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2772, in all
    return self._iter().all()
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2910, in _iter
    execution_options={"_sa_orm_load_options": self.load_options},
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1714, in execute
    result = conn._execute_20(statement, params or {}, execution_options)
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1705, in _execute_20
    return meth(self, args_10style, kwargs_10style, execution_options)
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection
    self, multiparams, params, execution_options
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1582, in _execute_clauseelement
    cache_hit=cache_hit,
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1944, in _execute_context
    e, statement, parameters, cursor, context
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2125, in _handle_dbapi_exception
    sqlalchemy_exception, with_traceback=exc_info[2], from_=e
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
    raise exception
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1901, in _execute_context
    cursor, statement, parameters, context
  File "/home/SEAL/miniconda3/envs/seal/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "team" does not exist
LINE 2: FROM team
             ^

[SQL: SELECT team.id AS team_id, team.teamname AS team_teamname, team.color AS team_color 
FROM team]
(Background on this error at: https://sqlalche.me/e/14/f405)
Char-Al commented 1 year ago

The error come from the import of seal/routes.py on seal/__init__.py.

Indeed, this import request all table of the datables but they are not create...

Quick fix:

thomasguignard commented 1 year ago

Thanks for the fix. It should be added to the README until final fix.