Django - update_index обновляет как тестовые, так и производственные сайты - PullRequest
0 голосов
/ 14 ноября 2018

Это странная вещь, которую я не могу понять.

У меня есть две базы данных - тестовая и рабочая.

У меня есть два веб-сайта - тестовая и производственная.

Django использует эластичный поиск для индексации.

Они работают на разных серверах, имеют разные IP-адреса и т. Д.

Между двумя базами данных вообще нет связи.Они поддерживаются независимо.

Однако, когда я запускаю update_index или rebuild_index на производственном или тестовом сайте, индексы на обоих сайтах получают обновления.Две базы данных по-прежнему остаются независимыми, и данные там вообще не передаются.

Не имеет значения, запускаю ли я команду в тестовом или производственном режиме - обе будут обновляться из любого источника.

Это, очевидно, вызывает у меня много проблем, и я не могу это понять на всю жизнь.

ИСПЫТАТЕЛЬНАЯ БАЗА ДАННЫХ И ХЕЙСТАК -

DATABASES = {
    "default": {
        # Ends with "postgresql_psycopg2", "mysql", "sqlite3" or "oracle".
        "ENGINE": "django.db.backends.oracle",
        # DB name or path to database file if using sqlite3.
        "NAME": "--",
        # Not used with sqlite3.
        "USER": "--",
        # Not used with sqlite3.
        "PASSWORD": "--",
        # Set to empty string for localhost. Not used with sqlite3.
        "HOST": <test-database>,
        # Set to empty string for default. Not used with sqlite3.
        "PORT": "--",
    }
}

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
        'URL': 'http://127.0.0.1:9200',
        'INDEX_NAME': 'products_index'
    }
}

ПРОИЗВОДСТВЕННАЯ БАЗА ДАННЫХ И СОЕДИНЕНИЕ С ХЕЙСТЕКОМ

DATABASES = {
    "default": {
        # Ends with "postgresql_psycopg2", "mysql", "sqlite3" or "oracle".
        "ENGINE": "django.db.backends.oracle",
        # DB name or path to database file if using sqlite3.
        "NAME": "--",
        # Not used with sqlite3.
        "USER": "--",
        # Not used with sqlite3.
        "PASSWORD": "--",
        # Set to empty string for localhost. Not used with sqlite3.
        "HOST": "<production-database>",
        # Set to empty string for default. Not used with sqlite3.
        "PORT": "--",
    }
}
HAYSTACK_CONNECTIONS = {
  'default': {
  'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
  'URL': 'http://127.0.0.1:9200/',
  'INDEX_NAME': 'products_index',
  },
}

Я рвал на себе волосы и, похоже, не могу найти, как они, возможно, общаются и обновляют друг друга!Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 13 марта 2019

Тестовый и производственный сервер, указывающий на один и тот же сервер ES.Надеюсь, что ответим на ваш вопрос.

...