{"id":23886,"library":"infi-clickhouse-orm","title":"infi.clickhouse-orm","description":"A Python ORM-like library for interacting with ClickHouse databases, providing high-level abstractions for creating, querying, and manipulating data. Current version: 2.1.3. Release cadence is irregular.","status":"active","version":"2.1.3","language":"python","source_language":"en","source_url":"https://github.com/Infinidat/infi.clickhouse_orm","tags":["clickhouse","orm","database","infi"],"install":[{"cmd":"pip install infi-clickhouse-orm","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Used internally for database connection","package":"clickhouse-driver","optional":false},{"reason":"Date parsing utilities","package":"python-dateutil","optional":false},{"reason":"Timezone support","package":"pytz","optional":false}],"imports":[{"wrong":"from infi.clickhouse_orm import Database","symbol":"Database","correct":"from infi.clickhouse_orm import Database"}],"quickstart":{"code":"from infi.clickhouse_orm import Database, Model, StringField, Int32Field\n\nclass Person(Model):\n    name = StringField()\n    age = Int32Field()\n    tablename = 'persons'\n\n# Connect to ClickHouse (adjust host/port as needed)\ndb = Database('default', db_url='http://localhost:8123/')\ndb.create_table(Person)\n\n# Insert a record\nperson = Person(name='Alice', age=30)\ndb.insert([person])\n\n# Query\nresults = db.select('SELECT * FROM persons')\nfor row in results:\n    print(row.name, row.age)","lang":"python","description":"Basic usage: define a model, create table, insert and query data."},"warnings":[{"fix":"Explicitly set tablename attribute in Model subclasses to match existing tables.","message":"Table names are case-sensitive and must match the database schema. The ORM does not automatically lowercase or uppercase table names.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Change import statements to from infi.clickhouse_orm import ...","message":"In version 2.0.0, the import path changed from clickhouse_orm to infi.clickhouse_orm. Old code using from clickhouse_orm import ... will break.","severity":"breaking","affected_versions":"2.0.0 and later"},{"fix":"Always pass a list: db.insert([instance])","message":"The insert() method expects a list of model instances; inserting a single instance without wrapping in a list causes a TypeError.","severity":"gotcha","affected_versions":"All"}],"env_vars":null,"search_vec":"'2.1.3':27 'abstract':18 'cadenc':29 'clickhous':12,32 'creat':20 'current':25 'data':24 'databas':13,34 'high':16 'high-level':15 'infi':35 'infi.clickhouse':1 'interact':10 'irregular':31 'level':17 'librari':8 'like':7 'manipul':23 'orm':2,6,33 'orm-lik':5 'provid':14 'python':4 'queri':21 'releas':28 'version':26","created_at":"2026-05-01T08:10:08.956582+00:00","updated_at":"2026-05-01T08:10:08.956582+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\n  File \"/tmp/tmp_zskd0ei/venv/lib/python3.12/site-packages/infi/clickhouse_orm/__init__.py\", line 1, in <module>\n    __import__(\"pkg_resources\").declare_namespace(__name__)\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^\nModuleNotFoundError: "},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"2.1.3","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/Infinidat/infi.clickhouse_orm","docs":null,"changelog":null,"pypi":"https://pypi.org/project/infi-clickhouse-orm/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}