{"id":44126,"library":"water-orm","title":"Waterline ORM","description":"Waterline is a next-generation storage and retrieval engine and the default ORM used in the Sails framework. Current stable version is 0.13.x (not published on npm as a standalone package with version 0.0.7 which is an abandoned fork). It provides a uniform API for accessing different databases (MySQL, PostgreSQL, MongoDB, Redis, etc.) via adapters. Key differentiators include promise/async-await support (no callbacks since v0.13), a modular adapter system, and consistency across adapters. Release cadence is tied to Sails.js major releases. Originally developed by Balderdashy, now maintained by the Sails community. This specific npm package 'water-orm' version 0.0.7 is a monolith fork of Waterline and is likely unstable/abandoned.","status":"abandoned","version":"0.0.7","language":"javascript","source_language":"en","source_url":"git://github.com/carlosgalveias/worm","tags":["javascript","mvc","orm","mysql","postgresql","redis","mongodb","active-record","waterline"],"install":[{"cmd":"npm install water-orm","lang":"bash","label":"npm"},{"cmd":"yarn add water-orm","lang":"bash","label":"yarn"},{"cmd":"pnpm add water-orm","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Waterline supports both ESM and CJS, but ESM is preferred for modern Node.js >= 12.","wrong":"const Waterline = require('waterline')","symbol":"Waterline","correct":"import Waterline from 'waterline'"},{"note":"Collection is a named export used to define model classes.","wrong":"const { Collection } = require('waterline')","symbol":"Collection","correct":"import { Collection } from 'waterline'"},{"note":"The default export is the Waterline constructor; named export 'Waterline' does not exist.","wrong":"import { Waterline } from 'waterline'","symbol":"default","correct":"import waterline from 'waterline'"}],"quickstart":{"code":"import Waterline from 'waterline';\nimport sailsDiskAdapter from 'sails-disk';\n\nconst waterline = new Waterline();\n\nconst User = Waterline.Model.extend({\n  identity: 'user',\n  datastore: 'default',\n  primaryKey: 'id',\n  attributes: {\n    id: { type: 'number', autoMigrations: { autoIncrement: true } },\n    name: { type: 'string' },\n    email: { type: 'string' }\n  }\n});\n\nwaterline.registerModel(User);\n\nwaterline.initialize({\n  adapters: { 'sails-disk': sailsDiskAdapter },\n  datastores: {\n    default: { adapter: 'sails-disk' }\n  }\n}, (err, ontology) => {\n  if (err) return console.error(err);\n  const UserModel = ontology.collections.user;\n  UserModel.create({ name: 'Alice', email: 'alice@example.com' })\n    .then(user => console.log('Created:', user))\n    .catch(err => console.error(err));\n});","lang":"javascript","description":"Shows how to initialize Waterline with an in-memory disk adapter, define a model, and create a record."},"warnings":[{"fix":"Replace callbacks with async/await or promises.","message":"Waterline v0.13+ requires Node.js >= 8 and uses async/await; callbacks are deprecated.","severity":"deprecated","affected_versions":">=0.13"},{"fix":"See upgrade guide at http://sailsjs.com/documentation/upgrading/to-v-1-0.","message":"Waterline v0.11 branch is for Sails v0.12; upgrading to v0.13 involves breaking changes.","severity":"breaking","affected_versions":">=0.12 <0.13"},{"fix":"Ensure adapter package is installed and passed in the 'adapters' config.","message":"Adapter must be registered before initializing; using a missing adapter throws unclear errors.","severity":"gotcha","affected_versions":">=0.10"},{"fix":"Use the official 'waterline' package instead.","message":"The 'water-orm' package (version 0.0.7) is an abandoned fork with no maintenance or security updates.","severity":"deprecated","affected_versions":"=0.0.7"}],"env_vars":null,"search_vec":"'0.0.7':38,103 '0.13':26 'abandon':42 'access':50 'across':75 'activ':122 'active-record':121 'adapt':59,71,76 'api':48 'balderdashi':88 'cadenc':78 'callback':66 'communiti':94 'consist':74 'current':22 'databas':52 'default':15 'develop':86 'differ':51 'differenti':61 'engin':12 'etc':57 'fork':43,107 'framework':21 'generat':8 'includ':62 'javascript':114 'key':60 'like':112 'maintain':90 'major':83 'modular':70 'mongodb':55,120 'monolith':106 'mvc':115 'mysql':53,117 'next':7 'next-gener':6 'npm':31,97 'origin':85 'orm':2,16,101,116 'packag':35,98 'postgresql':54,118 'promise/async-await':63 'provid':45 'publish':29 'record':123 'redi':56,119 'releas':77,84 'retriev':11 'sail':20,93 'sails.js':82 'sinc':67 'specif':96 'stabl':23 'standalon':34 'storag':9 'support':64 'system':72 'tie':80 'uniform':47 'unstable/abandoned':113 'use':17 'v0.13':68 'version':24,37,102 'via':58 'water':100 'water-orm':99 'waterlin':1,3,109,124 'x':27","created_at":"2026-06-05T17:03:06.104253+00:00","updated_at":"2026-06-05T17:03:06.104253+00:00","problems":[{"fix":"Use waterline.registerModel() with a Model class; or use the new API via Waterline.Collection.","cause":"Using obsolete API; 'registerModel' was removed in v0.13.","error":"Error: `registerModel` is not a function"},{"fix":"Install and configure an adapter (e.g., 'sails-disk') and pass it in the 'adapters' object.","cause":"Missing adapter configuration or adapter not installed.","error":"AdapterError: No adapter found for datastore 'default'."},{"fix":"Use default import: import Waterline from 'waterline'.","cause":"Using incorrect import or version mismatch (e.g., using named export instead of default).","error":"TypeError: waterline.initialize is not a function"}],"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/carlosgalveias/worm#readme","github":"git://github.com/carlosgalveias/worm","docs":null,"changelog":null,"pypi":null,"npm":"water-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-05","next_check":"2026-09-03","install_tag":null}}