{"id":42498,"library":"chaos-database","title":"Chaos Database","description":"Chaos ORM base classes for SQL adapters, version 19.0.2. Provides core abstractions for relational database operations including schema migration, query building, and result mapping. Integrates with Chaos ORM ecosystem for ActiveRecord or DataMapper patterns. Requires babel-polyfill as a peer dependency. Supports MySQL, PostgreSQL, SQLite through adapter packages. Release cadence is irregular; major version jumps indicate breaking changes. Differentiator from Sequelize/Knex: tighter integration with Chaos ORM's event-driven architecture.","status":"active","version":"19.0.2","language":"javascript","source_language":"en","source_url":"ssh://git@github.com/crysalead-js/chaos-database","tags":["javascript","chaos-orm","database","sql"],"install":[{"cmd":"npm install chaos-database","lang":"bash","label":"npm"},{"cmd":"yarn add chaos-database","lang":"bash","label":"yarn"},{"cmd":"pnpm add chaos-database","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required as peer dependency for ES6+ features","package":"babel-polyfill","optional":false}],"imports":[{"note":"Default export does not exist; must use named import.","wrong":"import Database from 'chaos-database'","symbol":"Database","correct":"import { Database } from 'chaos-database'"},{"note":"CommonJS require works but named import is preferred for ESM.","wrong":"const Source = require('chaos-database').Source","symbol":"Source","correct":"import { Source } from 'chaos-database'"},{"note":"Schema is not part of the root 'chaos' package; must use 'chaos-database'.","wrong":"import { Schema } from 'chaos'","symbol":"Schema","correct":"import { Schema } from 'chaos-database'"}],"quickstart":{"code":"import { Database } from 'chaos-database';\nimport { MySQLAdapter } from 'chaos-mysql'; // or other adapter\n\nconst db = new Database({\n  adapter: new MySQLAdapter({\n    host: process.env.DB_HOST ?? 'localhost',\n    user: process.env.DB_USER ?? 'root',\n    password: process.env.DB_PASS ?? '',\n    database: process.env.DB_NAME ?? 'test'\n  })\n});\n\nawait db.connect();\nconst result = await db.query('SELECT 1 AS value');\nconsole.log(result);","lang":"typescript","description":"Shows instantiating a Database with a MySQL adapter, connecting, and running a raw query."},"warnings":[{"fix":"Pass adapter directly to Database constructor instead of calling setAdapter() after instantiation.","message":"The `setAdapter` method is deprecated in favor of passing adapter in constructor.","severity":"deprecated","affected_versions":">=15.0"},{"fix":"Use Schema.migrate() explicitly to apply changes.","message":"In v19, the `Schema` class no longer auto-migrates; manual migration required.","severity":"breaking","affected_versions":">=19.0"},{"fix":"Create an adapter instance (e.g., from 'chaos-mysql') and pass it to the constructor.","message":"The `Database` constructor expects an adapter object, not a connection string.","severity":"gotcha","affected_versions":">=1.0"},{"fix":"Install babel-polyfill alongside chaos-database.","message":"babel-polyfill must be installed as a peer dependency for older Node versions.","severity":"gotcha","affected_versions":"<20.0"}],"env_vars":null,"search_vec":"'19.0.2':11 'abstract':14 'activerecord':33 'adapt':9,50 'architectur':74 'babel':39 'babel-polyfil':38 'base':5 'break':60 'build':23 'cadenc':53 'chang':61 'chao':1,3,29,68,77 'chaos-orm':76 'class':6 'core':13 'databas':2,17,79 'datamapp':35 'depend':44 'differenti':62 'driven':73 'ecosystem':31 'event':72 'event-driven':71 'includ':19 'indic':59 'integr':27,66 'irregular':55 'javascript':75 'jump':58 'major':56 'map':26 'migrat':21 'mysql':46 'oper':18 'orm':4,30,69,78 'packag':51 'pattern':36 'peer':43 'polyfil':40 'postgresql':47 'provid':12 'queri':22 'relat':16 'releas':52 'requir':37 'result':25 'schema':20 'sequelize/knex':64 'sql':8,80 'sqlite':48 'support':45 'tighter':65 'version':10,57","created_at":"2026-06-05T16:55:16.756850+00:00","updated_at":"2026-06-05T16:55:16.756850+00:00","problems":[{"fix":"Use import { Database } from 'chaos-database' instead of import Database from 'chaos-database'.","cause":"Importing default export instead of named export.","error":"TypeError: Database is not a constructor"},{"fix":"Pass an adapter instance to the Database constructor.","cause":"Instantiating Database without an adapter.","error":"Error: Adapter not provided"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/crysalead-js/chaos-database#readme","github":"ssh://git@github.com/crysalead-js/chaos-database","docs":null,"changelog":null,"pypi":null,"npm":"chaos-database","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}