{"id":23269,"library":"apache-airflow-providers-weaviate","title":"Apache Airflow Provider for Weaviate","description":"This is the Apache Airflow provider package for integrating with Weaviate vector database. It enables Airflow DAGs to interact with Weaviate for vector search, import/export of objects, and schema management. Current version 3.3.3, compatible with Airflow >=2.10.0 and Python >=3.10. Released roughly quarterly.","status":"active","version":"3.3.3","language":"python","source_language":"en","source_url":"https://github.com/apache/airflow/tree/main/airflow/providers/weaviate","tags":["airflow","provider","weaviate","vector-database","airflow-provider"],"install":[{"cmd":"pip install apache-airflow-providers-weaviate","lang":"bash","label":"Install from PyPI"},{"cmd":"pip install apache-airflow[weaviate]","lang":"bash","label":"Install via Airflow extras"}],"dependencies":[{"reason":"Core dependency; requires >=2.10.0","package":"apache-airflow","optional":false},{"reason":"Weaviate Python client for API calls","package":"weaviate-client","optional":false},{"reason":"Used for SQL-like hooks and operators","package":"apache-airflow-providers-common-sql","optional":true}],"imports":[{"note":"Old provider structure; imports changed to providers namespace.","wrong":"from airflow.hooks.weaviate import WeaviateHook","symbol":"WeaviateHook","correct":"from airflow.providers.weaviate.hooks.weaviate import WeaviateHook"},{"note":"","wrong":"","symbol":"WeaviateIngestOperator","correct":"from airflow.providers.weaviate.operators.weaviate import WeaviateIngestOperator"},{"note":"","wrong":"","symbol":"WeaviateDocumentParser","correct":"from airflow.providers.weaviate.hooks.hooks import WeaviateDocumentParser"}],"quickstart":{"code":"from datetime import datetime\nfrom airflow import DAG\nfrom airflow.operators.python import PythonOperator\nfrom airflow.providers.weaviate.hooks.weaviate import WeaviateHook\n\ndef test_connection():\n    hook = WeaviateHook(weaviate_conn_id='weaviate_default')\n    client = hook.get_client()\n    print(client.is_ready())\n\nwith DAG(\n    dag_id='weaviate_test',\n    start_date=datetime(2023,1,1),\n    schedule=None,\n    catchup=False,\n) as dag:\n    task = PythonOperator(\n        task_id='test_conn',\n        python_callable=test_connection\n    )","lang":"python","description":"Minimal DAG to test Weaviate connection using the provider hook."},"warnings":[{"fix":"Update import to `from airflow.providers.weaviate.hooks.weaviate import WeaviateHook`.","message":"In version 3.0.0, the hook import path changed from `airflow.providers.weaviate.hooks.weaviate_hook` to `airflow.providers.weaviate.hooks.weaviate`. Old imports will break.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Replace `hook.get_conn()` with `hook.get_client()`.","message":"The `WeaviateHook` method `get_conn` is deprecated; use `get_client` instead.","severity":"deprecated","affected_versions":">=2.5.0"},{"fix":"Create a connection with conn_type='weaviate', host as the Weaviate URL, and optionally login/password for API key.","message":"The Weaviate connection must use the 'weaviate' connection type in Airflow, not 'http' or 'generic'. Setting the wrong conn_type will cause silent fallback or errors.","severity":"gotcha","affected_versions":"all"},{"fix":"First run a schema creation operation (e.g., using `WeaviateCreateSchemaOperator` or direct client call) before ingestion.","message":"When using `WeaviateIngestOperator`, the `class_name` must already exist in the Weaviate schema. The operator does NOT automatically create the class; it only ingests objects.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `from airflow.providers.weaviate.hooks.weaviate import WeaviateHook`.","cause":"Trying to import hook from old deprecated path.","error":"ModuleNotFoundError: No module named 'airflow.hooks.weaviate'"},{"fix":"Replace `hook.get_conn()` with `hook.get_client()`.","cause":"Using deprecated method after provider update.","error":"AttributeError: 'WeaviateHook' object has no attribute 'get_conn'"},{"fix":"Ensure each task uses the hook to obtain a fresh client; do not share clients across tasks without reopening.","cause":"Reusing a closed client or not properly managing hook lifecycle.","error":"weaviate.exceptions.WeaviateClosedError: the client is closed"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}