TOMToolkit / tom_base

The base Django project for a Target and Observation Manager
https://tom-toolkit.readthedocs.io
GNU General Public License v3.0
26 stars 45 forks source link

psycopg2 required for TOMs running Postgresql. #926

Closed jchate6 closed 4 months ago

jchate6 commented 4 months ago

Should this be added to our pyproject.toml in case a user happens to be testing on a postgres DB?

jchate6 commented 4 months ago

tests fail for me locally if I don't pip install psycopg2-binary

jchate6 commented 4 months ago
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/db/backends/postgresql/base.py", line 25, in <module>
    import psycopg as Database
ModuleNotFoundError: No module named 'psycopg'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/db/backends/postgresql/base.py", line 27, in <module>
    import psycopg2 as Database
ModuleNotFoundError: No module named 'psycopg2'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/jchatelain/git/tom_base/manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/core/management/__init__.py", line 436, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/core/management/commands/test.py", line 24, in run_from_argv
    super().run_from_argv(argv)
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/core/management/base.py", line 412, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/core/management/base.py", line 458, in execute
    output = self.handle(*args, **options)
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/core/management/commands/test.py", line 68, in handle
    failures = test_runner.run_tests(test_labels)
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/test/runner.py", line 1054, in run_tests
    old_config = self.setup_databases(
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/test/runner.py", line 950, in setup_databases
    return _setup_databases(
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/test/utils.py", line 187, in setup_databases
    test_databases, mirrored_aliases = get_unique_databases_and_mirrors(aliases)
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/test/utils.py", line 337, in get_unique_databases_and_mirrors
    connection = connections[alias]
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/utils/connection.py", line 62, in __getitem__
    conn = self.create_connection(alias)
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/db/utils.py", line 193, in create_connection
    backend = load_backend(db["ENGINE"])
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/db/utils.py", line 113, in load_backend
    return import_module("%s.base" % backend_name)
  File "/usr/lib64/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/jchatelain/git/tom_base/env_tombase/lib64/python3.10/site-packages/django/db/backends/postgresql/base.py", line 29, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 or psycopg module")
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 or psycopg module
jchate6 commented 4 months ago

Users who decide to use a Postgresql DB should install psycopg2-binary. The Docs have been updated.