{"id":42486,"library":"caminte","title":"CaminteJS","description":"CaminteJS is a cross-database ORM for Node.js (v0.4.1, no recent releases) that provides a unified interface to interact with multiple databases including MySQL, PostgreSQL, SQLite, MongoDB, Redis, Neo4j, CouchDB, RethinkDB, and more. It features a model-driven approach with support for relationships, validations, query building, hooks, and a CLI for scaffolding. Unlike ORMs like Sequelize or Mongoose that are tied to specific databases, CaminteJS offers flexibility to switch backends with minimal code changes, though its last update was in 2017 and it relies on separate adapter packages which may be unmaintained.","status":"maintenance","version":"0.4.1","language":"javascript","source_language":"en","source_url":"git://github.com/biggora/caminte","tags":["javascript","orm","cross-db","caminte","database","adapter","redis","mysql","mariadb"],"install":[{"cmd":"npm install caminte","lang":"bash","label":"npm"},{"cmd":"yarn add caminte","lang":"bash","label":"yarn"},{"cmd":"pnpm add caminte","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Import Schema from caminte; older docs might show require, but ESM is supported in Node >=4.","wrong":"const caminte = require('caminte'); const Schema = caminte.Schema;","symbol":"Schema","correct":"import { Schema } from 'caminte';"},{"note":"Text is a type helper; use Schema.Text or import via destructuring from Schema.","wrong":"import { Text } from 'caminte'; (Text is not directly exported)","symbol":"Text","correct":"import { Schema, Text } from 'caminte';"},{"note":"Data types are nested under Schema, not top-level exports.","wrong":"import { DataType } from 'caminte';","symbol":"DataType","correct":"import { Schema } from 'caminte'; var DataType = Schema.DataType;"}],"quickstart":{"code":"import { Schema } from 'caminte';\n\nconst schema = new Schema('mysql', {\n  host: process.env.DB_HOST ?? 'localhost',\n  port: process.env.DB_PORT ?? 3306,\n  database: process.env.DB_NAME ?? 'test',\n  username: process.env.DB_USER ?? 'root',\n  password: process.env.DB_PASS ?? '',\n});\n\nconst Post = schema.define('Post', {\n  title: { type: String, length: 255 },\n  content: { type: Schema.Text },\n  date: { type: Date },\n  published: { type: Boolean, default: false },\n});\n\nPost.create({ title: 'Hello Caminte', content: 'Test', published: true }, (err, post) => {\n  if (err) return console.error(err);\n  console.log('Created:', post.id);\n});","lang":"typescript","description":"Initializes a schema with MySQL, defines a Post model with various types, creates a record, and logs the result."},"warnings":[{"fix":"Consider migrating to a more modern ORM like Sequelize or Prisma that are actively maintained.","message":"The package caminte is no longer actively maintained and may have security vulnerabilities in its dependencies.","severity":"deprecated","affected_versions":">=0"},{"fix":"Install the adapter for your database, e.g., npm install caminte-mysql.","message":"Adapter packages like caminte-mysql, caminte-postgres must be installed separately and may be incompatible with newer Node versions.","severity":"breaking","affected_versions":">=0.3"},{"fix":"Wrap calls in Promises manually or use a library like 'promise' to convert callback-based functions.","message":"CaminteJS uses callbacks, not Promises, which can lead to callback hell if not managed carefully.","severity":"gotcha","affected_versions":">=0"}],"env_vars":null,"search_vec":"'2017':84 'adapt':90,103 'approach':42 'backend':73 'build':49 'camint':101 'camintej':1,2,68 'chang':77 'cli':53 'code':76 'couchdb':32 'cross':6,99 'cross-databas':5 'cross-db':98 'databas':7,24,67,102 'db':100 'driven':41 'featur':37 'flexibl':70 'hook':50 'includ':25 'interact':21 'interfac':19 'javascript':96 'last':80 'like':58 'mariadb':106 'may':93 'minim':75 'model':40 'model-driven':39 'mongodb':29 'mongoos':61 'multipl':23 'mysql':26,105 'neo4j':31 'node.js':10 'offer':69 'orm':8,57,97 'packag':91 'postgresql':27 'provid':16 'queri':48 'recent':13 'redi':30,104 'relationship':46 'releas':14 'reli':87 'rethinkdb':33 'scaffold':55 'separ':89 'sequel':59 'specif':66 'sqlite':28 'support':44 'switch':72 'though':78 'tie':64 'unifi':18 'unlik':56 'unmaintain':95 'updat':81 'v0.4.1':11 'valid':47","created_at":"2026-06-05T16:55:12.463960+00:00","updated_at":"2026-06-05T16:55:12.463960+00:00","problems":[{"fix":"Run: npm install caminte-mysql (or caminte-postgres, caminte-mongodb, etc.)","cause":"Missing adapter package; caminte does not bundle database adapters.","error":"Error: Cannot find module 'caminte-mysql'"},{"fix":"Upgrade caminte to at least 0.3.0 and ensure correct import.","cause":"Using caminte < 0.3 API; schema.define was introduced in 0.3.","error":"TypeError: schema.define is not a function"},{"fix":"ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';","cause":"MySQL 8.0 default auth plugin 'caching_sha2_password' not supported by caminte's mysql adapter.","error":"Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server"}],"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":"http://camintejs.com/","github":"git://github.com/biggora/caminte","docs":null,"changelog":null,"pypi":null,"npm":"caminte","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}}