[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1509":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":39,"readmeContent":40,"aiSummary":41,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":42,"discoverSource":43},1509,"typeorm","typeorm\u002Ftypeorm","TypeScript & JavaScript ORM for Node.js — supports PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, Oracle, and more.","http:\u002F\u002Ftypeorm.io",null,"TypeScript",36535,6572,338,420,0,2,12,59,7,85.9,"MIT License",false,"master",true,[26,27,28,29,30,31,32,33,34,35,36,37,5,38],"active-record","cockroachdb","data-mapper","database","hacktoberfest","javascript","mariadb","mysql","orm","postgresql","sqlite","sqlserver","typescript","2026-06-12 04:00:10","\u003Cdiv align=\"center\">\n  \u003Ca href=\"http:\u002F\u002Ftypeorm.io\u002F\">\n    \u003Cpicture>\n        \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Ftypeorm\u002Fraw\u002Fmaster\u002Fresources\u002Ftypeorm-logo-colored-light.png\">\n        \u003Csource  media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Ftypeorm\u002Fraw\u002Fmaster\u002Fresources\u002Ftypeorm-logo-colored-dark.png\">\n        \u003Cimg height=\"80\" width=\"auto\" alt=\"TypeORM Logo\" src=\"https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Ftypeorm\u002Fraw\u002Fmaster\u002Fresources\u002Ftypeorm-logo-colored-dark.png\">\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n  \u003Cbr>\n  \u003Cbr>\n    \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Ftypeorm\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Ftypeorm\" alt=\"NPM Version\"\u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Ftypeorm\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Ftypeorm\" alt=\"NPM Downloads\"\u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Ftypeorm\u002Factions\u002Fworkflows\u002Ftests.yml?query=branch%3Amaster\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Ftypeorm\u002Factions\u002Fworkflows\u002Ftests.yml\u002Fbadge.svg?branch=master\" alt=\"Commit Validation\"\u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fsonarcloud.io\u002Fsummary\u002Foverall?id=typeorm_typeorm\">\u003Cimg src=\"https:\u002F\u002Fsonarcloud.io\u002Fapi\u002Fproject_badges\u002Fmeasure?project=typeorm_typeorm&metric=coverage\" alt=\"Coverage\"\u002F>\u003C\u002Fa>\n    \u003Ca href='https:\u002F\u002Fdashboard.stryker-mutator.io\u002Freports\u002Fgithub.com\u002Ftypeorm\u002Ftypeorm\u002Fmaster'>\u003Cimg src='https:\u002F\u002Fimg.shields.io\u002Fendpoint?style=flat&url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Ftypeorm%2Ftypeorm%2Fmaster' alt='Mutation testing badge' \u002F>\u003C\u002Fa>\n    \u003Ca href=\"\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-teal.svg\" alt=\"MIT License\"\u002F>\u003C\u002Fa>\n  \u003Cbr>\n  \u003Cbr>\n\u003C\u002Fdiv>\n\nTypeORM is an [ORM](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FObject-relational_mapping) that can run in Node.js, Browser, Cordova, Ionic, React Native, NativeScript, Expo, and Electron platforms and can be used with TypeScript and JavaScript (ES2023). Its goal is to always support the latest JavaScript features and provide additional features that help you to develop any kind of application that uses databases - from small applications with a few tables to large-scale enterprise applications with multiple databases.\n\nTypeORM supports more databases than any other JS\u002FTS ORM: [Google Spanner](.\u002Fdocs\u002Fdocs\u002Fdrivers\u002Fgoogle-spanner.md), [Microsoft SqlServer](.\u002Fdocs\u002Fdocs\u002Fdrivers\u002Fmicrosoft-sqlserver.md), [MySQL\u002FMariaDB](.\u002Fdocs\u002Fdocs\u002Fdrivers\u002Fmysql.md), [MongoDB](.\u002Fdocs\u002Fdocs\u002Fdrivers\u002Fmongodb.md), [Oracle](.\u002Fdocs\u002Fdocs\u002Fdrivers\u002Foracle.md), [Postgres](.\u002Fdocs\u002Fdocs\u002Fdrivers\u002Fpostgres.md), [SAP HANA](.\u002Fdocs\u002Fdocs\u002Fdrivers\u002Fsap.md) and [SQLite](.\u002Fdocs\u002Fdocs\u002Fdrivers\u002Fsqlite.md), as well as derived databases and different drivers.\n\nTypeORM supports both [Active Record](.\u002Fdocs\u002Fdocs\u002Fguides\u002F1-active-record-data-mapper.md#what-is-the-active-record-pattern) and [Data Mapper](.\u002Fdocs\u002Fdocs\u002Fguides\u002F1-active-record-data-mapper.md#what-is-the-data-mapper-pattern) patterns, unlike all other JavaScript ORMs currently in existence, which means you can write high-quality, loosely coupled, scalable, maintainable applications in the most productive way.\n\nTypeORM is highly influenced by other ORMs, such as [Hibernate](http:\u002F\u002Fhibernate.org\u002Form\u002F),\n[Doctrine](http:\u002F\u002Fwww.doctrine-project.org\u002F) and [Entity Framework](https:\u002F\u002Fwww.asp.net\u002Fentity-framework).\n\n## Features\n\n- Supports both [DataMapper](.\u002Fdocs\u002Fdocs\u002Fguides\u002F1-active-record-data-mapper.md#what-is-the-data-mapper-pattern) and [ActiveRecord](.\u002Fdocs\u002Fdocs\u002Fguides\u002F1-active-record-data-mapper.md#what-is-the-active-record-pattern) (your choice).\n- Entities and columns.\n- Database-specific column types.\n- Entity manager.\n- Repositories and custom repositories.\n- Clean object-relational model.\n- Associations (relations).\n- Eager and lazy relations.\n- Unidirectional, bidirectional, and self-referenced relations.\n- Supports multiple inheritance patterns.\n- Cascades.\n- Indices.\n- Transactions.\n- Migrations and automatic migrations generation.\n- Connection pooling.\n- Replication.\n- Using multiple database instances.\n- Working with multiple database types.\n- Cross-database and cross-schema queries.\n- Elegant-syntax, flexible and powerful QueryBuilder.\n- Left and inner joins.\n- Proper pagination for queries using joins.\n- Query caching.\n- Streaming raw results.\n- Logging.\n- Listeners and subscribers (hooks).\n- Supports closure table pattern.\n- Schema declaration in models or separate configuration files.\n- Supports MySQL \u002F MariaDB \u002F Postgres \u002F CockroachDB \u002F SQLite \u002F Microsoft SQL Server \u002F Oracle \u002F SAP Hana \u002F sql.js.\n- Supports MongoDB NoSQL database.\n- Works in Node.js \u002F Browser \u002F Ionic \u002F Cordova \u002F React Native \u002F NativeScript \u002F Expo \u002F Electron platforms.\n- TypeScript and JavaScript support.\n- ESM and CommonJS support.\n- Produced code is performant, flexible, clean, and maintainable.\n- Follows all possible best practices.\n- CLI.\n\nAnd more...\n\nWith TypeORM, your models look like this:\n\n```typescript\nimport { Entity, PrimaryGeneratedColumn, Column } from \"typeorm\"\n\n@Entity()\nexport class User {\n    @PrimaryGeneratedColumn()\n    id: number\n\n    @Column()\n    firstName: string\n\n    @Column()\n    lastName: string\n\n    @Column()\n    age: number\n}\n```\n\nAnd your domain logic looks like this:\n\n```typescript\nconst userRepository = MyDataSource.getRepository(User)\n\nconst user = new User()\nuser.firstName = \"Timber\"\nuser.lastName = \"Saw\"\nuser.age = 25\nawait userRepository.save(user)\n\nconst allUsers = await userRepository.find()\nconst firstUser = await userRepository.findOneBy({\n    id: 1,\n}) \u002F\u002F find by id\nconst timber = await userRepository.findOneBy({\n    firstName: \"Timber\",\n    lastName: \"Saw\",\n}) \u002F\u002F find by firstName and lastName\n\nawait userRepository.remove(timber)\n```\n\nAlternatively, if you prefer to use the `ActiveRecord` implementation, you can use it as well:\n\n```typescript\nimport { Entity, PrimaryGeneratedColumn, Column, BaseEntity } from \"typeorm\"\n\n@Entity()\nexport class User extends BaseEntity {\n    @PrimaryGeneratedColumn()\n    id: number\n\n    @Column()\n    firstName: string\n\n    @Column()\n    lastName: string\n\n    @Column()\n    age: number\n}\n```\n\nAnd your domain logic will look this way:\n\n```typescript\nconst user = new User()\nuser.firstName = \"Timber\"\nuser.lastName = \"Saw\"\nuser.age = 25\nawait user.save()\n\nconst allUsers = await User.find()\nconst firstUser = await User.findOneBy({\n    id: 1,\n})\nconst timber = await User.findOneBy({\n    firstName: \"Timber\",\n    lastName: \"Saw\",\n})\n\nawait timber.remove()\n```\n\n## Samples\n\nThere are a few repositories that you can clone and start with:\n\n- [Example how to use TypeORM with TypeScript](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Ftypescript-example)\n- [Example how to use TypeORM with JavaScript](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Fjavascript-example)\n- [Example how to use TypeORM with JavaScript and Babel](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Fbabel-example)\n- [Example how to use TypeORM with TypeScript and SystemJS in Browser](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Fbrowser-example)\n- [Example how to use TypeORM with TypeScript and React in Browser](https:\u002F\u002Fgithub.com\u002FItayGarin\u002Ftypeorm-react-swc)\n- [Example how to use Express and TypeORM](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Ftypescript-express-example)\n- [Example how to use Koa and TypeORM](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Ftypescript-koa-example)\n- [Example how to use TypeORM with MongoDB](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Fmongo-typescript-example)\n- [Example how to use TypeORM in a Cordova app](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Fcordova-example)\n- [Example how to use TypeORM with an Ionic app](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Fionic-example)\n- [Example how to use TypeORM with React Native](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Freact-native-example)\n- [Example how to use TypeORM with Nativescript-Vue](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Fnativescript-vue-typeorm-sample)\n- [Example how to use TypeORM with Nativescript-Angular](https:\u002F\u002Fgithub.com\u002Fbetov18x\u002Fnativescript-angular-typeorm-example)\n- [Example how to use TypeORM with Electron using JavaScript](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Felectron-javascript-example)\n- [Example how to use TypeORM with Electron using TypeScript](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Felectron-typescript-example)\n\n## Extensions\n\nThere are several extensions that simplify working with TypeORM and integrating it with other modules:\n\n- Models generation from the existing database - [typeorm-model-generator](https:\u002F\u002Fgithub.com\u002FKononnable\u002Ftypeorm-model-generator)\n- Fixtures loader - [typeorm-fixtures-cli](https:\u002F\u002Fgithub.com\u002FRobinCK\u002Ftypeorm-fixtures)\n- ER Diagram generator - [typeorm-uml](https:\u002F\u002Fgithub.com\u002Feugene-manuilov\u002Ftypeorm-uml\u002F)\n- another ER Diagram generator - [erdia](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Ferdia\u002F)\n- Create, drop and seed database - [typeorm-extension](https:\u002F\u002Fgithub.com\u002Ftada5hi\u002Ftypeorm-extension)\n- Automatically update `data-source.ts` after generating migrations\u002Fentities - [typeorm-codebase-sync](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Ftypeorm-codebase-sync)\n- Easy manipulation of `relations` objects - [typeorm-relations](https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Ftypeorm-relations)\n- Automatically generate `relations` based on a GraphQL query - [typeorm-relations-graphql](https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Ftypeorm-relations-graphql)\n- Generate TypeORM entities from Valibot schemas - [piying-orm](https:\u002F\u002Fgithub.com\u002Fpiying-org\u002Fpiying-orm)\n\n## Contributing\n\nLearn about contribution [here](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Ftypeorm\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md) and how to set up your development environment [here](https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Ftypeorm\u002Fblob\u002Fmaster\u002FDEVELOPER.md).\n\nThis project exists thanks to all the people who contribute:\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftypeorm\u002Ftypeorm\u002Fgraphs\u002Fcontributors\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002Ftypeorm\u002Fcontributors.svg?width=890&showBtn=false\" \u002F>\u003C\u002Fa>\n\n## Sponsors\n\nOpen source is hard and time-consuming. If you want to invest in TypeORM's future, you can become a sponsor and allow our core team to spend more time on TypeORM's improvements and new features.\n\n### Champion\n\nBecome a champion sponsor and get premium technical support from our core contributors. [Become a champion](https:\u002F\u002Fopencollective.com\u002Ftypeorm)\n\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Ftypeorm\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002Ftypeorm\u002Ftiers\u002Fgold-sponsor.svg?avatarHeight=36\">\u003C\u002Fa>\n\n### Supporter\n\nSupport TypeORM's development with a monthly contribution. [Become a supporter](https:\u002F\u002Fopencollective.com\u002Ftypeorm)\n\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Ftypeorm\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002Ftypeorm\u002Ftiers\u002Flove.svg?avatarHeight=36\">\u003C\u002Fa>\n\n### Community\n\nJoin our community of supporters and help sustain TypeORM. [Become a community supporter](https:\u002F\u002Fopencollective.com\u002Ftypeorm)\n\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Ftypeorm\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002Ftypeorm\u002Ftiers\u002Flike.svg?avatarHeight=36\">\u003C\u002Fa>\n\n### Sponsor\n\nMake a one-time or recurring contribution of your choice. [Become a sponsor](https:\u002F\u002Fopencollective.com\u002Ftypeorm)\n\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Ftypeorm\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002Ftypeorm\u002Ftiers\u002Fsponsor.svg?avatarHeight=36\">\u003C\u002Fa>\n","TypeORM 是一个适用于 Node.js、浏览器及多种移动和桌面平台的 TypeScript 和 JavaScript 对象关系映射（ORM）工具。它支持 PostgreSQL、MySQL、MariaDB、SQLite、SQL Server、Oracle 等多种数据库，并且能够利用最新的 JavaScript 特性来构建从简单到复杂的企业级应用。TypeORM 的主要技术特点包括对 Active Record 和 Data Mapper 两种设计模式的支持，以及广泛的数据库兼容性。这使得开发者可以根据项目需求灵活选择最适合的数据访问策略。无论是开发小型项目还是大型企业解决方案，只要涉及到数据持久化操作，TypeORM 都是一个值得考虑的选择。","2026-06-11 02:44:22","top_all"]