# TypeORM: what changed from 0 to 1 - Product: TypeORM (https://whatsnew.fyi/product/typeorm) - Vendor: TypeORM - Range: changelog entries numbered after 0.3.31 up to and including 1.1.1, stable releases only - Entries below: 3 releases (newest first) - Resolved: 0 is 0.3.31 and 1 is 1.1.1, the newest stable release of each major we track - Carrying security changes: 0 · CVEs mentioned: 0 · Mentioning breaking changes: 1 · Removing or deprecating something: 1 - Page: https://whatsnew.fyi/product/typeorm/compare/0...1 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## What changed (52 changes, grouped by kind) ### Added #### 1.1.1 (2026-09-01) - Export RelationMetadata - Export DateUtils from the package entry point #### 1.1.0 (2026-07-13) - Support distinct count #### 1.0.0 (2026-05-19) - Support for PostgreSQL indices - Error handling and log warning for ormconfig loading failures - Better typing for conditions in increment and decrement of EntityManager - Support for installing additional postgres extensions - Deferrable support to exclusion decorator to mirror unique and index decorators - Support for INSERT INTO ... SELECT FROM ... in QueryBuilder ### Changed #### 1.1.1 (2026-09-01) - Avoid quadratic grouping of raw results selected without primary keys #### 1.1.0 (2026-07-13) - Clarify extra option as driver-native escape hatch in data source documentation #### 1.0.0 (2026-05-19) - PostgreSQL enum value changes now use ADD VALUE when possible - Replace uuid with native Crypto API ### Fixed #### 1.1.1 (2026-09-01) - Compare versions of unequal length correctly - Default many-to-many inverse foreign key to CASCADE - Resolve relation values for join columns inside embedded entities - Guard metadata access in InsertQueryBuilder for raw-table upsert - Keep many-to-many junction rows when the relation is not loaded - Return undefined from deepValue when path is missing - Release query runners created by clear and getFromCache - Evaluate function defaults before enum/string normalization - Measure query execution time after the statement runs in sqljs - Await query event subscribers and report failed queries in better-sqlite3 - Read coord_dimension when loading spatial columns in postgres - Nest child joins only when outer join semantics require it #### 1.1.0 (2026-07-13) - Preserve select false columns on the in-memory entity after save() - Release query runner on error in storeInCache - Multiple recursive CTE problems - Correct grammar in AlreadyHasActiveConnectionError message - Normalization of FindOptionsWhere for arrays and Buffers - Improve normalizeDatetimeFunction for tstzrange data type in PostgreSQL - Use cursor.transform for doc to entity transformation and skip load broadcast in next if toArray in MongoDB - Wrap inner joins under left joins correctly in query builder - Tree entity schema propagation in internal TreeRepository methods - Move hashing function to PlatformTools - Remove require() calls that break bundlers - Reject empty where criteria on update and delete operations in query builder - Default invalidWhereValuesBehavior to throw on the write path in entity manager - Validate where criteria in increment/decrement in entity manager #### 1.0.0 (2026-05-19) - Include joined entity primary keys in pagination subquery - Preserve structured query results during transaction retry replay in CockroachDB - getPendingMigrations unnecessarily creating migrations table - Copy cordova query rows affected into query result - Resolve nameless TableForeignKey on drop foreign key - Virtual property handling in schema builder - Correctly process embedded arrays of nested documents in MongoDB - Fix working with tables with quotes in the names for PostgreSQL and CockroachDB - getVersion returning undefined for PolarDB-X 2.0 - Raw select query with correctly ordered selected columns - Update child's mpath - Merging into an entity now respects null values ### Removed #### 1.0.0 (2026-05-19) - Legacy expo driver ## Release notes ### 1.1.1 - Date: 2026-09-01 - Version: 1.1.1 - Original notes: https://github.com/typeorm/typeorm/releases/tag/1.1.1 - Permalink: https://whatsnew.fyi/product/typeorm/releases/1.1.1 - **fixed** — Compare versions of unequal length correctly - **fixed** — Default many-to-many inverse foreign key to CASCADE - **fixed** — Resolve relation values for join columns inside embedded entities - **fixed** — Guard metadata access in InsertQueryBuilder for raw-table upsert - **fixed** — Keep many-to-many junction rows when the relation is not loaded - **fixed** — Return undefined from deepValue when path is missing - **fixed** — Release query runners created by clear and getFromCache - **added** — Export RelationMetadata - **fixed** — Evaluate function defaults before enum/string normalization - **added** — Export DateUtils from the package entry point - **fixed** — Measure query execution time after the statement runs in sqljs - **fixed** — Await query event subscribers and report failed queries in better-sqlite3 - **fixed** — Read coord_dimension when loading spatial columns in postgres - **changed** — Avoid quadratic grouping of raw results selected without primary keys - **fixed** — Nest child joins only when outer join semantics require it ##### What's Changed * fix(version-utils): compare versions of unequal length correctly by @ix1osbek in https://github.com/typeorm/typeorm/pull/12668 * fix(schema): default many-to-many inverse foreign key to CASCADE by @kyungseopk1m in https://github.com/typeorm/typeorm/pull/12663 * fix: resolve relation values for join columns inside embedded entities by @michaelbromley in https://github.com/typeorm/typeorm/pull/12726 * fix: guard metadata access in InsertQueryBuilder for raw-table upsert by @xianjianlf2 in https://github.com/typeorm/typeorm/pull/12702 * fix(persistence): keep many-to-many junction rows when the relation is not loaded by @IbrahimHafez1 in https://github.com/typeorm/typeorm/pull/12711 * docs(security): define security model and scope for advisory triage by @smith-xyz in https://github.com/typeorm/typeorm/pull/12757 * fix: return undefined from deepValue when path is missing by @michaelbromley in https://github.com/typeorm/typeorm/pull/12776 * fix(cache): release query runners created by clear and getFromCache by @kyungseopk1m in https://github.com/typeorm/typeorm/pull/12797 * fix: export `RelationMetadata` by @SchroederSteffen in https://github.com/typeorm/typeorm/pull/12789 * fix: evaluate function defaults before enum/string normalization by @Cprakhar in https://github.com/typeorm/typeorm/pull/12508 * docs: add rapiq to the extensions list in the README by @tada5hi in https://github.com/typeorm/typeorm/pull/12779 * fix: export DateUtils from the package entry point by @MahinAnowar in https://github.com/typeorm/typeorm/pull/12566 * fix(sqljs): measure query execution time after the statement runs by @kyungseopk1m in https://github.com/typeorm/typeorm/pull/12759 * fix(better-sqlite3): await query event subscribers and report failed queries by @kyungseopk1m in https://github.com/typeorm/typeorm/pull/12752 * fix(postgres): read `coord_dimension` when loading spatial columns by @samuelmbabhazi in https://github.com/typeorm/typeorm/pull/12749 * perf: avoid quadratic grouping of raw results selected without primary keys by @akdfkeks in https://github.com/typeorm/typeorm/pull/12802 * fix(query-builder): nest child joins only when outer join semantics require it by @lazerg in https://github.com/typeorm/typeorm/pull/12793 * chore(release): v1.1.1 by @alumni in https://github.com/typeorm/typeorm/pull/12819 ##### New Contributors * @ix1osbek made their first contribution in https://github.com/typeorm/typeorm/pull/12668 * @xianjianlf2 made their first contribution in https://github.com/typeorm/typeorm/pull/12702 * @IbrahimHafez1 made their first contribution in https://github.com/typeorm/typeorm/pull/12711 * @SchroederSteffen made their first contribution in https://github.com/typeorm/typeorm/pull/12789 * @MahinAnowar made their first contribution in https://github.com/typeorm/typeorm/pull/12566 * @samuelmbabhazi made their first contribution in https://github.com/typeorm/typeorm/pull/12749 * @akdfkeks made their first contribution in https://github.com/typeorm/typeorm/pull/12802 * @lazerg made their first contribution in https://github.com/typeorm/typeorm/pull/12793 **Full Changelog**: https://github.com/typeorm/typeorm/compare/1.1.0...1.1.1 ### 1.1.0 - Date: 2026-07-13 - Version: 1.1.0 - Original notes: https://github.com/typeorm/typeorm/releases/tag/1.1.0 - Permalink: https://whatsnew.fyi/product/typeorm/releases/1.1.0 - **fixed** — Preserve select false columns on the in-memory entity after save() - **fixed** — Release query runner on error in storeInCache - **fixed** — Multiple recursive CTE problems - **fixed** — Correct grammar in AlreadyHasActiveConnectionError message - **fixed** — Normalization of FindOptionsWhere for arrays and Buffers - **fixed** — Improve normalizeDatetimeFunction for tstzrange data type in PostgreSQL - **fixed** — Use cursor.transform for doc to entity transformation and skip load broadcast in next if toArray in MongoDB - **fixed** — Wrap inner joins under left joins correctly in query builder - **fixed** — Tree entity schema propagation in internal TreeRepository methods - **added** — Support distinct count - **fixed** — Move hashing function to PlatformTools - **fixed** — Remove require() calls that break bundlers - **fixed** — Reject empty where criteria on update and delete operations in query builder - **fixed** — Default invalidWhereValuesBehavior to throw on the write path in entity manager - **fixed** — Validate where criteria in increment/decrement in entity manager - **changed** — Clarify extra option as driver-native escape hatch in data source documentation ##### What's Changed * chore(legacy-naming-strategies): bump to 1.0.0 by @michaelbromley in https://github.com/typeorm/typeorm/pull/12518 * docs(blog): create v1 post by @naorpeled in https://github.com/typeorm/typeorm/pull/12364 * docs(data-source): clarify extra option as driver-native escape hatch by @naorpeled in https://github.com/typeorm/typeorm/pull/12368 * chore(deps): bump github/codeql-action from 4.35.4 to 4.35.5 in the github-actions-official group by @dependabot[bot] in https://github.com/typeorm/typeorm/pull/12528 * chore(deps): bump ws from 8.20.0 to 8.20.1 in /docs by @dependabot[bot] in https://github.com/typeorm/typeorm/pull/12515 * chore(deps): bump webpack-dev-server from 5.2.3 to 5.2.4 in /docs by @dependabot[bot] in https://github.com/typeorm/typeorm/pull/12516 * chore(deps): bump the github-actions-third-party group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/typeorm/typeorm/pull/12529 * test: make Postgres custom extension installation test reusable locally by @OSA413 in https://github.com/typeorm/typeorm/pull/12538 * chore(deps): bump uuid from 10.0.0 to 11.1.1 by @dependabot[bot] in https://github.com/typeorm/typeorm/pull/12536 * chore(deps): bump github/codeql-action from 4.35.5 to 4.36.0 in the github-actions-official group by @dependabot[bot] in https://github.com/typeorm/typeorm/pull/12550 * fix(persistence): preserve select false columns on the in-memory entity after save() by @tada5hi in https://github.com/typeorm/typeorm/pull/12501 * chore(deps): bump the github-actions-official group with 2 updates by @dependabot[bot] in https://github.com/typeorm/typeorm/pull/12561 * fix(cache): release query runner on error in storeInCache by @francisjohnjohnston-web in https://github.com/typeorm/typeorm/pull/12545 * ci: add PR triage workflow for issue linkage and duplicate detection by @smith-xyz in https://github.com/typeorm/typeorm/pull/12469 * fix: multiple recursive cte problems by @twooster in https://github.com/typeorm/typeorm/pull/12490 * fix: correct grammar in AlreadyHasActiveConnectionError message by @DucMinhNe in https://github.com/typeorm/typeorm/pull/12554 * fix: normalization of FindOptionsWhere for arrays and Buffers by @alumni in https://github.com/typeorm/typeorm/pull/12577 * chore(deps): bump github/codeql-action from 4.36.1 to 4.36.2 in the github-actions-official group across 1 directory by @dependabot[bot] in https://github.com/typeorm/typeorm/pull/12572 * test: rename github-issue 7558 test file name by @Cprakhar in https://github.com/typeorm/typeorm/pull/12581 * fix(postgres): improve normalizeDatetimeFunction for tstzrange data type by @Cprakhar in https://github.com/typeorm/typeorm/pull/12182 * fix(mongodb): use cursor.transform for doc to entity transformation and skip load broadcast in next if toArray by @Cprakhar in https://github.com/typeorm/typeorm/pull/11926 * fix(query-builder): wrap inner joins under left joins correctly by @harm-less in https://github.com/typeorm/typeorm/pull/11137 * ci: add healthcheck for oracle by @Cprakhar in https://github.com/typeorm/typeorm/pull/12591 * fix(tree-entity): tree entity schema propagation in internal TreeRepository methods by @xEverth in https://github.com/typeorm/typeorm/pull/12590 * chore(deps): bump the github-actions-third-party group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/typeorm/typeorm/pull/12589 * feat: support distinct count by @Cprakhar in https://github.com/typeorm/typeorm/pull/11965 * chore(deps): bump serialize-javascript from 6.0.2 to 7.0.5 (via audit fix) in /packages/codemod by @dependabot[bot] in https://github.com/typeorm/typeorm/pull/12534 * fix: move hashing function to PlatformTools by @alumni in https://github.com/typeorm/typeorm/pull/12648 * fix: remove require() calls that break bundlers by @alumni in https://github.com/typeorm/typeorm/pull/12647 * fix(query-builder): reject empty where criteria on update and dele _[Truncated at 4000 characters — full notes: https://github.com/typeorm/typeorm/releases/tag/1.1.0]_ ### 1.0.0 - Date: 2026-05-19 - Version: 1.0.0 - Original notes: https://github.com/typeorm/typeorm/releases/tag/1.0.0 - Permalink: https://whatsnew.fyi/product/typeorm/releases/1.0.0 - **added** — Support for PostgreSQL indices - **added** — Error handling and log warning for ormconfig loading failures - **added** — Better typing for conditions in increment and decrement of EntityManager - **added** — Support for installing additional postgres extensions - **added** — Deferrable support to exclusion decorator to mirror unique and index decorators - **added** — Support for INSERT INTO ... SELECT FROM ... in QueryBuilder - **changed** — PostgreSQL enum value changes now use ADD VALUE when possible - **changed** — Replace uuid with native Crypto API - **fixed** — Include joined entity primary keys in pagination subquery - **fixed** — Preserve structured query results during transaction retry replay in CockroachDB - **fixed** — getPendingMigrations unnecessarily creating migrations table - **fixed** — Copy cordova query rows affected into query result - **fixed** — Resolve nameless TableForeignKey on drop foreign key - **fixed** — Virtual property handling in schema builder - **fixed** — Correctly process embedded arrays of nested documents in MongoDB - **fixed** — Fix working with tables with quotes in the names for PostgreSQL and CockroachDB - **fixed** — getVersion returning undefined for PolarDB-X 2.0 - **fixed** — Raw select query with correctly ordered selected columns - **fixed** — Update child's mpath - **fixed** — Merging into an entity now respects null values - **removed** — Legacy expo driver TypeORM v1.0 is here! 🥳 > **👉 For a structured walk-through of the changes in v1.0 — breaking changes, new features, security fixes, and the upgrade path from 0.3.x — see the [v1.0 Release Notes](https://typeorm.io/docs/releases/1.0/release-notes).** > **This release includes breaking changes. See the [v1.0 Upgrade Guide](https://typeorm.io/docs/releases/1.0/upgrading-from-0.3)** ##### What's Changed * fix: include joined entity primary keys in pagination subquery by @mag123c in https://github.com/typeorm/typeorm/pull/11669 * feat(postgres): add support for PostgreSQL indices by @freePixel in https://github.com/typeorm/typeorm/pull/11318 * refactor!: remove legacy expo driver by @G0maa in https://github.com/typeorm/typeorm/pull/11860 * fix(cockroachdb): preserve structured query results during txn retry replay by @naorpeled in https://github.com/typeorm/typeorm/pull/11861 * docs: add version dropdown (stable/dev) to master by @naorpeled in https://github.com/typeorm/typeorm/pull/11862 * docs: link to queryrunner api docs from top level queryrunner page by @hughrawlinson in https://github.com/typeorm/typeorm/pull/11869 * feat: add error handling and log warning for ormconfig loading failures by @Cprakhar in https://github.com/typeorm/typeorm/pull/11871 * refactor: remove shajs by @G0maa in https://github.com/typeorm/typeorm/pull/11864 * ci: setup pnpm by @alumni in https://github.com/typeorm/typeorm/pull/11881 * chore(docs): move to PNPM by @naorpeled in https://github.com/typeorm/typeorm/pull/11884 * feat: add better typing for conditions in `increment` and `decrement` of `EntityManager` by @OSA413 in https://github.com/typeorm/typeorm/pull/11294 * fix: getPendingMigrations unnecessarily creating migrations table by @pkuczynski in https://github.com/typeorm/typeorm/pull/11672 * fix: copy cordova query rows affected into query result by @jacobg in https://github.com/typeorm/typeorm/pull/10873 * fix: resolve nameless TableForeignKey on drop foreign key by @taichunmin in https://github.com/typeorm/typeorm/pull/10744 * feat(docs): add Kapa.ai widget for AI-powered documentation assistance by @dlhck in https://github.com/typeorm/typeorm/pull/11891 * fix: virtual property handling in schema builder by @skyran1278 in https://github.com/typeorm/typeorm/pull/11000 * fix(mongo): correctly process embedded arrays of nested documents by @mciuchitu in https://github.com/typeorm/typeorm/pull/10940 * feat(postgres): use `ADD VALUE` when changing enum values if possible by @janzipek in https://github.com/typeorm/typeorm/pull/10956 * test: add mutation testing and mutation score badge by @OSA413 in https://github.com/typeorm/typeorm/pull/11253 * fix: change import for process dependency by @yohannpoli in https://github.com/typeorm/typeorm/pull/11248 * chore(tests): adapt Stryker mutator to pnpm and fix markup in README for badges by @OSA413 in https://github.com/typeorm/typeorm/pull/11893 * chore(tests): send only mutation score to the Stryker dashboard by @OSA413 in https://github.com/typeorm/typeorm/pull/11895 * fix: fix working with tables with quotes in the names for postgres and cockroachdb by @iskalyakin in https://github.com/typeorm/typeorm/pull/10993 * refactor: replace uuid with native Crypto API by @mag123c in https://github.com/typeorm/typeorm/pull/11769 * fix(mysql): getVersion returning undefined for PolarDB-X 2.0 by @Missna in https://github.com/typeorm/typeorm/pull/11837 * test: align file names by @gioboa in https://github.com/typeorm/typeorm/pull/11898 * ci: ensure pull request follow conventional commits spec by @pkuczynski in https://github.com/typeorm/typeorm/pull/11840 * feat(qodo): enable new review experience by @naorpeled in https://github.com/typeorm/typeorm/pull/11909 * test: modify tests to confirm `ON CONFLICT ON CONSTRAINT` on PostgreSQL/CockroachDB by @Cprakhar in https://github.com/typeorm/typeorm/pull/11908 * feat: add support for installing additional postgres extensio _[Truncated at 4000 characters — full notes: https://github.com/typeorm/typeorm/releases/tag/1.0.0]_