{"id":43512,"library":"opr-sql-database","title":"OPR SQL Database","description":"SQL database implementation of the OprDatabase interface from opr-core, built on TypeORM for cross-RDBMS compatibility (PostgreSQL, MySQL, SQLite, etc.). Current stable version 0.7.1. Package is part of Google's Open Product Recovery (OPR) ecosystem. Compatible with Node >=12.0.0. Key differentiator: provides a standardized database backend for OPR systems, abstracting SQL dialects via TypeORM. Release cadence is irregular; maintained by Google.","status":"active","version":"0.7.1","language":"javascript","source_language":"en","source_url":"https://github.com/google/open-product-recovery","tags":["javascript","typescript"],"install":[{"cmd":"npm install opr-sql-database","lang":"bash","label":"npm"},{"cmd":"yarn add opr-sql-database","lang":"bash","label":"yarn"},{"cmd":"pnpm add opr-sql-database","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Provides the OprDatabase interface that this package implements","package":"opr-core","optional":false},{"reason":"ORM library for SQL database operations","package":"typeorm","optional":false},{"reason":"Required by TypeORM for decorator support","package":"reflect-metadata","optional":false}],"imports":[{"note":"Named export, not default.","wrong":"import OprSqlDatabase from 'opr-sql-database'","symbol":"OprSqlDatabase","correct":"import { OprSqlDatabase } from 'opr-sql-database'"},{"note":"TypeScript interface for database configuration.","wrong":null,"symbol":"OprDatabaseOptions","correct":"import { OprDatabaseOptions } from 'opr-sql-database'"},{"note":"ESM-only since v0.7.0; avoid require() in Node <12.","wrong":"const createOprSqlDatabase = require('opr-sql-database').createOprSqlDatabase","symbol":"createOprSqlDatabase","correct":"import { createOprSqlDatabase } from 'opr-sql-database'"}],"quickstart":{"code":"import { createOprSqlDatabase, OprDatabaseOptions } from 'opr-sql-database';\nimport { OprCore } from 'opr-core';\n\nconst options: OprDatabaseOptions = {\n  type: 'postgres',\n  host: 'localhost',\n  port: 5432,\n  username: process.env.DB_USER ?? 'opr',\n  password: process.env.DB_PASS ?? '',\n  database: 'opr_db',\n  synchronize: true,\n};\n\nconst db = await createOprSqlDatabase(options);\nconst core = new OprCore(db);\nawait core.initialize();\nconsole.log('OPR SQL Database connected and core initialized.');","lang":"typescript","description":"Initialize an OPR SQL database with PostgreSQL connection using createOprSqlDatabase, then pass to OprCore."},"warnings":[{"fix":"Install TypeORM 0.2.x: npm install typeorm@0.2","message":"TypeORM version mismatch: Requires TypeORM ^0.2.x, not 0.3.x.","severity":"breaking","affected_versions":">=0.7.0 <0.8.0"},{"fix":"Use migrations instead of synchronize.","message":"synchronize: true is not recommended for production.","severity":"deprecated","affected_versions":">=0.5.0"},{"fix":"Import 'reflect-metadata' at the entry point of your application.","message":"Requires reflect-metadata import before using the package.","severity":"gotcha","affected_versions":">=0.7.0"},{"fix":"Upgrade Node to >=12.0.0.","message":"Dropped support for Node 10 in v0.7.0.","severity":"breaking","affected_versions":">=0.7.0"},{"fix":"Set type in options (e.g., 'postgres', 'mysql', 'sqlite').","message":"Database type must be explicitly provided; auto-detection is not supported.","severity":"gotcha","affected_versions":">=0.7.0"}],"env_vars":null,"search_vec":"'0.7.1':30 '12.0.0':45 'abstract':56 'backend':52 'built':15 'cadenc':62 'compat':22,42 'core':14 'cross':20 'cross-rdbm':19 'current':27 'databas':3,5,51 'dialect':58 'differenti':47 'ecosystem':41 'etc':26 'googl':35,67 'implement':6 'interfac':10 'irregular':64 'javascript':68 'key':46 'maintain':65 'mysql':24 'node':44 'open':37 'opr':1,13,40,54 'opr-cor':12 'oprdatabas':9 'packag':31 'part':33 'postgresql':23 'product':38 'provid':48 'rdbms':21 'recoveri':39 'releas':61 'sql':2,4,57 'sqlite':25 'stabl':28 'standard':50 'system':55 'typeorm':17,60 'typescript':69 'version':29 'via':59","created_at":"2026-06-05T17:00:09.344970+00:00","updated_at":"2026-06-05T17:00:09.344970+00:00","problems":[{"fix":"Run npm install typeorm@0.2 reflect-metadata","cause":"TypeORM not installed or version mismatch.","error":"Cannot find module 'typeorm'"},{"fix":"Add import 'reflect-metadata' at the top of your entry file.","cause":"reflect-metadata not imported.","error":"Reflect.getMetadata is not a function"},{"fix":"Provide a valid type string in OprDatabaseOptions.","cause":"Missing or invalid database type in options.","error":"Unsupported database type: undefined"},{"fix":"Run npm install opr-core","cause":"opr-core peer dependency not installed.","error":"Error: Cannot find module 'opr-core'"}],"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/google/open-product-recovery#readme","github":"https://github.com/google/open-product-recovery","docs":null,"changelog":null,"pypi":null,"npm":"opr-sql-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}}