diff --git a/cookbook/admin.py b/cookbook/admin.py index b47afd92..9f7df90a 100644 --- a/cookbook/admin.py +++ b/cookbook/admin.py @@ -192,7 +192,7 @@ class RecipeAdmin(admin.ModelAdmin): def created_by(obj): return obj.created_by.get_user_display_name() - if settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']: + if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql': actions = [rebuild_index] diff --git a/cookbook/helper/recipe_search.py b/cookbook/helper/recipe_search.py index 4f4ab855..2b70808e 100644 --- a/cookbook/helper/recipe_search.py +++ b/cookbook/helper/recipe_search.py @@ -16,7 +16,7 @@ from recipes import settings # TODO consider creating a simpleListRecipe API that only includes minimum of recipe info and minimal filtering class RecipeSearch(): - _postgres = settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql'] + _postgres = settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql' def __init__(self, request, **params): self._request = request diff --git a/cookbook/management/commands/rebuildindex.py b/cookbook/management/commands/rebuildindex.py index 6ca4038c..c0bba9fa 100644 --- a/cookbook/management/commands/rebuildindex.py +++ b/cookbook/management/commands/rebuildindex.py @@ -1,9 +1,9 @@ from django.conf import settings from django.contrib.postgres.search import SearchVector from django.core.management.base import BaseCommand -from django_scopes import scopes_disabled from django.utils import translation from django.utils.translation import gettext_lazy as _ +from django_scopes import scopes_disabled from cookbook.managers import DICTIONARY from cookbook.models import Recipe, Step @@ -14,7 +14,7 @@ class Command(BaseCommand): help = _('Rebuilds full text search index on Recipe') def handle(self, *args, **options): - if settings.DATABASES['default']['ENGINE'] not in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']: + if settings.DATABASES['default']['ENGINE'] != 'django.db.backends.postgresql': self.stdout.write(self.style.WARNING(_('Only Postgresql databases use full text search, no index to rebuild'))) try: diff --git a/cookbook/migrations/0143_build_full_text_index.py b/cookbook/migrations/0143_build_full_text_index.py index 641efe4e..793e83be 100644 --- a/cookbook/migrations/0143_build_full_text_index.py +++ b/cookbook/migrations/0143_build_full_text_index.py @@ -9,7 +9,7 @@ from django.utils import translation from django_scopes import scopes_disabled from cookbook.managers import DICTIONARY -from cookbook.models import (Index, PermissionModelMixin, Recipe, Step, SearchFields) +from cookbook.models import Index, PermissionModelMixin, Recipe, SearchFields, Step def allSearchFields(): @@ -21,7 +21,7 @@ def nameSearchField(): def set_default_search_vector(apps, schema_editor): - if settings.DATABASES['default']['ENGINE'] not in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']: + if settings.DATABASES['default']['ENGINE'] != 'django.db.backends.postgresql': return language = DICTIONARY.get(translation.get_language(), 'simple') with scopes_disabled(): diff --git a/cookbook/signals.py b/cookbook/signals.py index 4636ca8a..a93ffba1 100644 --- a/cookbook/signals.py +++ b/cookbook/signals.py @@ -16,8 +16,7 @@ from cookbook.models import (Food, MealPlan, PropertyType, Recipe, SearchFields, Step, Unit, UserPreference) SQLITE = True -if settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', - 'django.db.backends.postgresql']: +if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql': SQLITE = False diff --git a/cookbook/tests/api/test_api_shopping_recipe.py b/cookbook/tests/api/test_api_shopping_recipe.py index 886233f0..473a631c 100644 --- a/cookbook/tests/api/test_api_shopping_recipe.py +++ b/cookbook/tests/api/test_api_shopping_recipe.py @@ -10,8 +10,7 @@ from django_scopes import scopes_disabled from cookbook.models import Food, Ingredient from cookbook.tests.factories import MealPlanFactory, RecipeFactory, StepFactory, UserFactory -if settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', - 'django.db.backends.postgresql']: +if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql': from django.db.backends.postgresql.features import DatabaseFeatures DatabaseFeatures.can_defer_constraint_checks = False diff --git a/cookbook/tests/other/test_recipe_full_text_search.py b/cookbook/tests/other/test_recipe_full_text_search.py index 3e119585..eed33887 100644 --- a/cookbook/tests/other/test_recipe_full_text_search.py +++ b/cookbook/tests/other/test_recipe_full_text_search.py @@ -23,8 +23,7 @@ from cookbook.tests.factories import (CookLogFactory, FoodFactory, IngredientFac # TODO makenow with above filters # TODO test search food/keywords including/excluding children LIST_URL = 'api:recipe-list' -sqlite = settings.DATABASES['default']['ENGINE'] not in [ - 'django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql'] +sqlite = settings.DATABASES['default']['ENGINE'] != 'django.db.backends.postgresql' @pytest.fixture diff --git a/cookbook/views/api.py b/cookbook/views/api.py index 24b0bdf1..159b6f8f 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -186,8 +186,7 @@ class FuzzyFilterMixin(ViewSetMixin, ExtendedRecipeMixin): fuzzy = True if query is not None and query not in ["''", '']: - if fuzzy and (settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', - 'django.db.backends.postgresql']): + if fuzzy and (settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql'): if self.request.user.is_authenticated and any( [self.model.__name__.lower() in x for x in self.request.user.searchpreference.unaccent.values_list('field', flat=True)]): self.queryset = self.queryset.annotate(trigram=TrigramSimilarity('name__unaccent', query)) diff --git a/cookbook/views/views.py b/cookbook/views/views.py index 97b89ce5..58a610a2 100644 --- a/cookbook/views/views.py +++ b/cookbook/views/views.py @@ -16,12 +16,13 @@ from django.utils import timezone from django.utils.translation import gettext as _ from django_scopes import scopes_disabled -from cookbook.forms import (CommentForm, Recipe, SearchPreferenceForm, SpaceCreateForm, SpaceJoinForm, User, - UserCreateForm, UserPreference) -from cookbook.helper.permission_helper import group_required, has_group_permission, share_link_valid, switch_user_active_space -from cookbook.models import (Comment, CookLog, InviteLink, SearchFields, SearchPreference, ShareLink, - Space, ViewLog, UserSpace) -from cookbook.tables import (CookLogTable, ViewLogTable) +from cookbook.forms import (CommentForm, Recipe, SearchPreferenceForm, SpaceCreateForm, + SpaceJoinForm, User, UserCreateForm, UserPreference) +from cookbook.helper.permission_helper import (group_required, has_group_permission, + share_link_valid, switch_user_active_space) +from cookbook.models import (Comment, CookLog, InviteLink, SearchFields, SearchPreference, + ShareLink, Space, UserSpace, ViewLog) +from cookbook.tables import CookLogTable, ViewLogTable from cookbook.version_info import VERSION_INFO from recipes.settings import PLUGINS @@ -219,10 +220,10 @@ def shopping_settings(request): if not sp: sp = SearchPreferenceForm(user=request.user) fields_searched = ( - len(search_form.cleaned_data['icontains']) - + len(search_form.cleaned_data['istartswith']) - + len(search_form.cleaned_data['trigram']) - + len(search_form.cleaned_data['fulltext']) + len(search_form.cleaned_data['icontains']) + + len(search_form.cleaned_data['istartswith']) + + len(search_form.cleaned_data['trigram']) + + len(search_form.cleaned_data['fulltext']) ) if search_form.cleaned_data['preset'] == 'fuzzy': sp.search = SearchPreference.SIMPLE @@ -278,8 +279,7 @@ def shopping_settings(request): search_form = SearchPreferenceForm() # these fields require postgresql - just disable them if postgresql isn't available - if not settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', - 'django.db.backends.postgresql']: + if not settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql': sp.search = SearchPreference.SIMPLE sp.trigram.clear() sp.fulltext.clear() @@ -309,10 +309,7 @@ def system(request): if not request.user.is_superuser: return HttpResponseRedirect(reverse('index')) - postgres = False if ( - settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql_psycopg2' # noqa: E501 - or settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql' # noqa: E501 - ) else True + postgres = settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql' secret_key = False if os.getenv('SECRET_KEY') else True diff --git a/docs/install/k8s/50-deployment.yaml b/docs/install/k8s/50-deployment.yaml index 2e98f6fe..3ec24bd7 100644 --- a/docs/install/k8s/50-deployment.yaml +++ b/docs/install/k8s/50-deployment.yaml @@ -17,7 +17,7 @@ spec: template: metadata: annotations: - backup.velero.io/backup-volumes: media,static + backup.velero.io/backup-volumes: media,static labels: app: recipes tier: frontend @@ -35,7 +35,7 @@ spec: name: recipes key: secret-key - name: DB_ENGINE - value: django.db.backends.postgresql_psycopg2 + value: django.db.backends.postgresql - name: POSTGRES_HOST value: recipes-postgresql - name: POSTGRES_PORT @@ -162,7 +162,7 @@ spec: - name: GUNICORN_MEDIA value: "0" - name: DB_ENGINE - value: django.db.backends.postgresql_psycopg2 + value: django.db.backends.postgresql - name: POSTGRES_HOST value: recipes-postgresql - name: POSTGRES_PORT