{"id":48626,"library":"multi-db-orm","title":"Multi DB ORM","description":"Multi DB ORM v3.1.4 is a TypeScript-shipping library that provides a unified CRUD interface for SQL and NoSQL databases including MongoDB, Firestore, SQLite, MySQL, Oracle, and SAP HANA. It supports backup, restore, and migration across databases. The library is actively maintained on GitHub and requires installing target-specific database drivers as optional peer dependencies. Key differentiators: single API for multiple DBs, built-in backup/restore, and cross-database migration support. Release cadence is not documented; latest version is 3.1.4.","status":"active","version":"3.1.4","language":"javascript","source_language":"en","source_url":"https://github.com/shiveshnavin/multi-db-orm","tags":["javascript","database","backup","restore","db","mongodb","typescript"],"install":[{"cmd":"npm install multi-db-orm","lang":"bash","label":"npm"},{"cmd":"yarn add multi-db-orm","lang":"bash","label":"yarn"},{"cmd":"pnpm add multi-db-orm","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"TypeScript ships; CJS requires destructuring only if using named exports, but default export is not provided. Use named import.","wrong":"const MultiDbORM = require('multi-db-orm').MultiDbORM","symbol":"MultiDbORM","correct":"import { MultiDbORM } from 'multi-db-orm'"},{"note":"Named export, not default. Requires firebase-admin as peer dependency.","wrong":"import FireStoreDB from 'multi-db-orm'","symbol":"FireStoreDB","correct":"import { FireStoreDB } from 'multi-db-orm'"},{"note":"Named export. Requires mongodb driver as peer dependency.","wrong":"const MongoDB = require('multi-db-orm')","symbol":"MongoDB","correct":"import { MongoDB } from 'multi-db-orm'"},{"note":"Named export. Requires sqlite3 as peer dependency.","wrong":"import SQLiteDB from 'multi-db-orm'","symbol":"SQLiteDB","correct":"import { SQLiteDB } from 'multi-db-orm'"},{"note":"Named export. Requires oracledb as peer dependency.","wrong":"const { OracleDB } = require('multi-db-orm');","symbol":"OracleDB","correct":"import { OracleDB } from 'multi-db-orm'"},{"note":"Named export. Requires mysql driver as peer dependency.","symbol":"MySQLDB","correct":"import { MySQLDB } from 'multi-db-orm'"},{"note":"Named export. Requires @sap/hana-client as peer dependency.","symbol":"HanaDB","correct":"import { HanaDB } from 'multi-db-orm'"}],"quickstart":{"code":"import { FireStoreDB } from 'multi-db-orm';\nimport * as admin from 'firebase-admin';\n\nconst firebasedb = new FireStoreDB('/path/to/serviceAccountKey.json');\n\nasync function example() {\n  // Create a document in Firestore\n  const docRef = await firebasedb.insert('users', {\n    name: 'Alice',\n    email: 'alice@example.com',\n    id: 'user123' // optional, otherwise uses Date.now()\n  });\n  console.log('Created document:', docRef);\n\n  // Get all documents from 'users' collection\n  const users = await firebasedb.get('users');\n  console.log('Users:', users);\n}\n\nexample().catch(console.error);","lang":"typescript","description":"Shows basic insert and get operations with Firestore using a service account file. Assumes firebase-admin is installed."},"warnings":[{"fix":"Always provide an 'id' field or explicit document path to avoid unexpected duplicate IDs.","message":"FirestoreDB requires a documentPath for each document: either as last parameter in CRUD functions or as 'id' field in objects. If none provided, Date.now() is used which may cause collisions.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use snake_case field names in objects when using OracleDB.","message":"Oracle field names are case insensitive. Always use snake_case for field names to avoid issues.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Be aware that undefined values become null in Firestore.","message":"Firestore does not support undefined values. The library automatically converts undefined to null on insert/update.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Always use await or .then() when calling insert, get, update, delete, etc.","message":"All CRUD functions are async (return promises). Forgetting to await may cause unexpected behavior.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Run npm install with the required driver for your database: npm install mongodb, npm install firebase-admin, etc.","message":"Optional database drivers (e.g., mongodb, firebase-admin, sqlite3) must be installed separately. They are not included as dependencies.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'3.1.4':86 'across':40 'activ':45 'api':64 'backup':36,89 'backup/restore':71 'built':69 'built-in':68 'cadenc':79 'cross':74 'cross-databas':73 'crud':18 'databas':24,41,55,75,88 'db':2,5,91 'dbs':67 'depend':60 'differenti':62 'document':82 'driver':56 'firestor':27 'github':48 'hana':33 'includ':25 'instal':51 'interfac':19 'javascript':87 'key':61 'latest':83 'librari':13,43 'maintain':46 'migrat':39,76 'mongodb':26,92 'multi':1,4 'multipl':66 'mysql':29 'nosql':23 'option':58 'oracl':30 'orm':3,6 'peer':59 'provid':15 'releas':78 'requir':50 'restor':37,90 'sap':32 'ship':12 'singl':63 'specif':54 'sql':21 'sqlite':28 'support':35,77 'target':53 'target-specif':52 'typescript':11,93 'typescript-ship':10 'unifi':17 'v3.1.4':7 'version':84","created_at":"2026-06-07T16:57:36.128615+00:00","updated_at":"2026-06-07T16:57:36.128615+00:00","problems":[{"fix":"Run 'npm install multi-db-orm'.","cause":"Package not installed.","error":"Cannot find module 'multi-db-orm'"},{"fix":"Use 'import { MongoDB } from 'multi-db-orm'' instead of 'import MongoDB from 'multi-db-orm''.","cause":"Incorrect import: using default import instead of named import.","error":"TypeError: multi-db-orm_1.MongoDB is not a constructor"},{"fix":"Run 'npm install sqlite3'.","cause":"Optional SQLite driver not installed.","error":"Error: Cannot find module 'sqlite3'"},{"fix":"Add an 'id' field to your object or pass document path as last parameter.","cause":"Document ID not provided via 'id' field or explicit parameter.","error":"Firestore: 'id' field missing, using Date.now()"}],"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/shiveshnavin/multi-db-orm#readme","github":"https://github.com/shiveshnavin/multi-db-orm","docs":null,"changelog":null,"pypi":null,"npm":"multi-db-orm","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-07","next_check":"2026-09-05","install_tag":null}}