{"id":41704,"library":"patio","title":"Patio ORM","description":"Patio is a Sequel-inspired query engine and ORM for Node.js (v4.2.1) that lets developers choose their abstraction level: full ORM, query builder via Database/Dataset, or raw SQL. Released as stable with moderate cadence; supports PostgreSQL and MySQL. Differentiated by automatic model definition from database schemas and flexible querying. Requires Node >= 10.0.0 and the 'comb' package.","status":"active","version":"4.2.1","language":"javascript","source_language":"en","source_url":"ssh://git@github.com/C2FO/patio","tags":["javascript","ORM","object relation mapper","relational","mapper","moose","mysql","MySQL","MySql"],"install":[{"cmd":"npm install patio","lang":"bash","label":"npm"},{"cmd":"yarn add patio","lang":"bash","label":"yarn"},{"cmd":"pnpm add patio","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core dependency for sequence/async operations","package":"comb","optional":false}],"imports":[{"note":"Patio does not support ES modules; use CommonJS require.","wrong":"import patio from 'patio'","symbol":"patio","correct":"var patio = require('patio')"},{"note":"Model is not a default export; use require and invoke as a constructor.","wrong":"import Model from 'patio'","symbol":"Model","correct":"var Model = require('patio').Model; var MyModel = Model(...)"},{"note":"Use connect() to create a Database instance; does not export Database directly.","wrong":"var DB = new Database()","symbol":"Database","correct":"var DB = require('patio').connect('pg://...')"}],"quickstart":{"code":"var patio = require('patio');\nvar comb = require('comb');\n\nvar DB = patio.connect('pg://user:pass@localhost/mydb');\nDB.createTable('users', function() {\n  this.primaryKey('id');\n  this.name(String);\n  this.email(String);\n});\n\nvar User = patio.Model('users');\nUser.setDefaultDataset(DB.from('users'));\n\nnew User({ name: 'John', email: 'john@example.com' }).save().then(function() {\n  return User.all();\n}).then(function(users) {\n  console.log(users);\n  DB.disconnect();\n});","lang":"javascript","description":"Connect to a PostgreSQL database, create a users table, define a model, insert a record, and query all records."},"warnings":[{"fix":"Restart your application or re-define the model after schema changes.","message":"Patio automatically defines model schema from the database table at runtime. Changes to the table after model definition may not be reflected until the process restarts.","severity":"gotcha","affected_versions":"*"},{"fix":"Switch to 'patio' as the single dependency.","message":"The 'patio-sql' package is deprecated; use 'patio' directly.","severity":"deprecated","affected_versions":"<3.0"},{"fix":"Run npm install comb patio","message":"The 'comb' package must be installed separately and is a peer dependency.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"search_vec":"'10.0.0':55 'abstract':21 'automat':44 'builder':26 'cadenc':37 'choos':19 'comb':58 'databas':48 'database/dataset':28 'definit':46 'develop':18 'differenti':42 'engin':10 'flexibl':51 'full':23 'inspir':8 'javascript':60 'let':17 'level':22 'mapper':64,66 'model':45 'moder':36 'moos':67 'mysql':41,68,69,70 'node':54 'node.js':14 'object':62 'orm':2,12,24,61 'packag':59 'patio':1,3 'postgresql':39 'queri':9,25,52 'raw':30 'relat':63,65 'releas':32 'requir':53 'schema':49 'sequel':7 'sequel-inspir':6 'sql':31 'stabl':34 'support':38 'v4.2.1':15 'via':27","created_at":"2026-06-04T18:53:42.183652+00:00","updated_at":"2026-06-04T18:53:42.183652+00:00","problems":[{"fix":"npm install comb","cause":"Missing peer dependency 'comb'","error":"Error: Cannot find module 'comb'"},{"fix":"Use var Model = require('patio'); var MyModel = Model('tablename');","cause":"Incorrect import or usage","error":"TypeError: patio.Model is not a function"},{"fix":"Start PostgreSQL/MySQL and verify connection URL.","cause":"Database server not running or connection string is wrong","error":"Error: connect ECONNREFUSED 127.0.0.1:5432"}],"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://c2fo.github.com/patio/index.html","github":"ssh://git@github.com/C2FO/patio","docs":null,"changelog":null,"pypi":null,"npm":"patio","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-04","next_check":"2026-09-02","install_tag":null}}