pull/20945/head
Bowen Liang 11 months ago
parent db48e6bc02
commit b8e22d5d4f

@ -10,6 +10,7 @@ yq eval '.services["elasticsearch"].ports += ["9200:9200"]' -i docker/docker-com
yq eval '.services.couchbase-server.ports += ["8091-8096:8091-8096"]' -i docker/docker-compose.yaml yq eval '.services.couchbase-server.ports += ["8091-8096:8091-8096"]' -i docker/docker-compose.yaml
yq eval '.services.couchbase-server.ports += ["11210:11210"]' -i docker/docker-compose.yaml yq eval '.services.couchbase-server.ports += ["11210:11210"]' -i docker/docker-compose.yaml
yq eval '.services.tidb.ports += ["4000:4000"]' -i docker/tidb/docker-compose.yaml yq eval '.services.tidb.ports += ["4000:4000"]' -i docker/tidb/docker-compose.yaml
yq eval '.services.oceanbase.ports += ["2881:2881"]' -i docker/docker-compose.yaml
yq eval '.services.opengauss.ports += ["6600:6600"]' -i docker/docker-compose.yaml yq eval '.services.opengauss.ports += ["6600:6600"]' -i docker/docker-compose.yaml
echo "Ports exposed for sandbox, weaviate, tidb, qdrant, chroma, milvus, pgvector, pgvecto-rs, elasticsearch, couchbase, opengauss" echo "Ports exposed for sandbox, weaviate, tidb, qdrant, chroma, milvus, pgvector, pgvecto-rs, elasticsearch, couchbase, opengauss"

@ -51,8 +51,16 @@ jobs:
- name: Expose Service Ports - name: Expose Service Ports
run: sh .github/workflows/expose_service_ports.sh run: sh .github/workflows/expose_service_ports.sh
- name: Set up Vector Stores (ob)
uses: hoverkraft-tech/compose-action@v2.0.2.0.2
with:
compose-file: |
docker/docker-compose.yaml
services: |
oceanbase
- name: Set up Vector Store (TiDB) - name: Set up Vector Store (TiDB)
uses: hoverkraft-tech/compose-action@v2.0.2 uses: hoverkraft-tech/compose-action@v2.0.2.0.2
with: with:
compose-file: docker/tidb/docker-compose.yaml compose-file: docker/tidb/docker-compose.yaml
services: | services: |
@ -60,7 +68,7 @@ jobs:
tiflash tiflash
- name: Set up Vector Stores (Weaviate, Qdrant, PGVector, Milvus, PgVecto-RS, Chroma, MyScale, ElasticSearch, Couchbase) - name: Set up Vector Stores (Weaviate, Qdrant, PGVector, Milvus, PgVecto-RS, Chroma, MyScale, ElasticSearch, Couchbase)
uses: hoverkraft-tech/compose-action@v2.0.2 uses: hoverkraft-tech/compose-action@v2.0.2.0.2
with: with:
compose-file: | compose-file: |
docker/docker-compose.yaml docker/docker-compose.yaml
@ -76,8 +84,10 @@ jobs:
chroma chroma
elasticsearch elasticsearch
- name: Check TiDB Ready - name: Check TiDB, Oceanbase Ready
run: uv run --project api python api/tests/integration_tests/vdb/tidb_vector/check_tiflash_ready.py run: |
uv run --project api python api/tests/integration_tests/vdb/tidb_vector/check_tiflash_ready.py
uv run --project api python api/tests/integration_tests/vdb/oceanbase/check_oceanbase_ready.py
- name: Test Vector Stores - name: Test Vector Stores
run: uv run --project api bash dev/pytest/pytest_vdb.sh run: uv run --project api bash dev/pytest/pytest_vdb.sh

@ -0,0 +1,69 @@
import logging
import time
import pymysql
def check_ocean_ready() -> bool:
try:
connection = pymysql.connect(
host="localhost",
port=2881,
user="root",
password="difyai123456",
connect_timeout=15,
read_timeout=20,
autocommit=True,
)
connection.ping(reconnect=True)
a = connection.query("select 1")
print(f"Oceanbase query result: {a}")
if a == 1:
return True
else:
return False
# with connection.cursor() as cursor:
# # SELECT 1;
# # """
# # cursor.execute(select_query)
# # result = cursor.fetchall()
# # return result is not None and len(result) > 0
# cursor.execute("SELECT 1")
# return cursor.fetchone() is not None
except Exception as e:
logging.exception("Error checking OceanBase readiness")
print(f"Oceanbase is not ready. Exception: {e}")
return False
finally:
if connection:
connection.close()
def main():
max_attempts = 50
retry_interval_seconds = 2
is_oceanbase_ready = False
for attempt in range(max_attempts):
try:
is_oceanbase_ready = check_ocean_ready()
except Exception as e:
print(f"Oceanbase is not ready. Exception: {e}")
is_oceanbase_ready = False
if is_oceanbase_ready:
break
else:
print(f"Attempt {attempt + 1} failed, retry in {retry_interval_seconds} seconds...")
time.sleep(retry_interval_seconds)
if is_oceanbase_ready:
print("Oceanbase is ready.")
else:
print(f"Oceanbase is not ready after {max_attempts} attempting checks.")
exit(1)
if __name__ == "__main__":
main()

@ -6,7 +6,6 @@ from core.rag.datasource.vdb.oceanbase.oceanbase_vector import (
) )
from tests.integration_tests.vdb.test_vector_store import ( from tests.integration_tests.vdb.test_vector_store import (
AbstractVectorTest, AbstractVectorTest,
get_example_text,
setup_mock_redis, setup_mock_redis,
) )

@ -449,9 +449,7 @@ services:
OB_TENANT_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456} OB_TENANT_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456}
OB_CLUSTER_NAME: ${OCEANBASE_CLUSTER_NAME:-difyai} OB_CLUSTER_NAME: ${OCEANBASE_CLUSTER_NAME:-difyai}
OB_SERVER_IP: 127.0.0.1 OB_SERVER_IP: 127.0.0.1
MODE: MINI MODE: mini
ports:
- "${OCEANBASE_VECTOR_PORT:-2881}:2881"
# Oracle vector database # Oracle vector database
oracle: oracle:

@ -955,9 +955,7 @@ services:
OB_TENANT_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456} OB_TENANT_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456}
OB_CLUSTER_NAME: ${OCEANBASE_CLUSTER_NAME:-difyai} OB_CLUSTER_NAME: ${OCEANBASE_CLUSTER_NAME:-difyai}
OB_SERVER_IP: 127.0.0.1 OB_SERVER_IP: 127.0.0.1
MODE: MINI MODE: mini
ports:
- "${OCEANBASE_VECTOR_PORT:-2881}:2881"
# Oracle vector database # Oracle vector database
oracle: oracle:

Loading…
Cancel
Save