这是我无法弄清的怪胎。
我有两个数据库-测试和生产。
我有两个网站-测试和生产。
Django正在使用Elasticsearch进行索引。
它们正在不同的服务器上运行,具有不同的IP地址等。
两个数据库之间根本没有链接。它们是独立维护的。
但是,当我在生产或测试站点上运行update_index
或rebuild_index
时,两个站点上的索引都在更新。这两个数据库仍然保持独立,并且那里的数据根本没有转移。
无论是在测试中还是在生产中运行命令都没关系-两者都会从任一来源更新。
这显然给我带来了许多问题,我一生无法解决。
测试数据库和HAYSTACK连接-
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'
}
}
生产数据库和HAYSTACK连接
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',
},
}
我一直在扯头发,似乎无法发现两者之间如何交流和更新!有人可以帮我吗?