فهرست منبع

[desktop] Fix hue suppressing psycopg2 import error

This fixes a problem where hue reports
`Unknown command: 'runcherrypyserver'` when it's configured to talk
to a postgresql database, but psycopg2 isn't installed inside hue.
It turns out that importing `desktop.monkey_patches` in settings
will result in django eventually trying to import the database library,
which raises an `ImproperlyConfigured` error. However, django
ignores `ImproperlyConfigured` when it's building it's list of supported
user commands, so we never would see the import error.

This patch fixes the immediate problem, but it doesn't yet stop this
from happening again in the future.
Erick Tryzelaar 10 سال پیش
والد
کامیت
ed4e37123d
2فایلهای تغییر یافته به همراه7 افزوده شده و 8 حذف شده
  1. 0 7
      desktop/core/src/desktop/monkey_patches.py
  2. 7 1
      desktop/core/src/desktop/settings.py

+ 0 - 7
desktop/core/src/desktop/monkey_patches.py

@@ -20,9 +20,6 @@ import re
 from django.contrib.auth.models import User
 from django.core.validators import RegexValidator
 
-from django.db.backends import BaseDatabaseWrapper
-from django.db.backends.util import CursorWrapper
-
 from desktop.lib.django_util import get_username_re_rule
 
 
@@ -45,7 +42,3 @@ def monkey_patch_username_validator():
 
 
 monkey_patch_username_validator()
-
-
-def disable_database_logging():
-  BaseDatabaseWrapper.make_debug_cursor = lambda self, cursor: CursorWrapper(cursor, self)

+ 7 - 1
desktop/core/src/desktop/settings.py

@@ -394,6 +394,12 @@ if desktop.conf.MEMORY_PROFILER.get():
   MEMORY_PROFILER = hpy()
   MEMORY_PROFILER.setrelheap()
 
+
 if not desktop.conf.DATABASE_LOGGING.get():
-  from desktop.monkey_patches import disable_database_logging
+  def disable_database_logging():
+    from django.db.backends import BaseDatabaseWrapper
+    from django.db.backends.util import CursorWrapper
+
+    BaseDatabaseWrapper.make_debug_cursor = lambda self, cursor: CursorWrapper(cursor, self)
+
   disable_database_logging()