Skip to content

Conversation

@Newbie012
Copy link
Contributor

@Newbie012 Newbie012 commented Apr 29, 2025

Description of change

replacing #10108

  • Added a new SQL tag feature to the DataSource and EntityManager for executing raw SQL queries with automatic parameter handling.
  • Implemented SqlTagUtils to manage parameter strategies based on database types.
  • Created tests for SQL tag functionality, covering various parameter scenarios and edge cases.
  • Updated documentation to include usage examples and benefits of the SQL tag feature.

Pull-Request Checklist

  • Code is up-to-date with the master branch
  • npm run format to apply prettier formatting
  • npm run test passes with this change
  • This pull request links relevant issues as Fixes #0000
  • There are new or updated unit tests validating the change
  • Documentation has been updated to reflect this change
  • The new commits follow conventions explained in CONTRIBUTING.md

* Added a new SQL tag feature to the DataSource and EntityManager for executing raw SQL queries with automatic parameter handling.
* Implemented SqlTagUtils to manage parameter strategies based on database types.
* Created comprehensive tests for SQL tag functionality, covering various parameter scenarios and edge cases.
* Updated documentation to include usage examples and benefits of the SQL tag feature.
* Improved formatting of SQL driver lists in the DataSource and EntityManager documentation.
* Added usage examples for the new SQL tag feature in both DataSource and EntityManager sections.
* Enhanced test configuration for SQL tag parameters with better formatting for enabled drivers.
@Newbie012 Newbie012 changed the title feat: introduce SQL tag for improved query handling feat: add tagged template for executing raw SQL queries Apr 29, 2025
@coveralls
Copy link

coveralls commented Apr 29, 2025

Coverage Status

coverage: 76.314% (+0.02%) from 76.299%
when pulling 8e9a561 on Newbie012:feat-sql-tag
into 80e9b30 on typeorm:master.

Copy link
Collaborator

@sgarner sgarner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a sweet new feature! One suggested change, otherwise looking good 👍

edit: Please also look at why some tests are failing

* Updated DataSource and EntityManager to use the new buildSqlTag function for SQL query handling.
* Refactored SqlTagUtils to a functional approach, simplifying parameter management.
* Enhanced test coverage for SQL tag parameters, including various scenarios and edge cases.
* Expanded enabled drivers in tests to include additional databases.
* Added support for handling array parameters in the buildSqlTag function for SQLite, MySQL, and better-sqlite3 drivers.
* Updated tests to include scenarios for SQL tag parameters with arrays, ensuring correct query generation and execution.
* Introduced a new PostgresExample entity to facilitate PostgreSQL-specific tests, replacing the previous Example entity in relevant test cases.
@alumni
Copy link
Collaborator

alumni commented May 2, 2025

I've got two questions before reviewing:

  1. Do we have to serialize the parameters? Can't we use the same logic as .query() instead of implementing something specific only for this?

  2. I rarely have single-line SQL template strings. Currently I use my own implementation which relies on common-tags (and utility-types) which keeps a consistent indentation in the SQL code. E.g.:

function main() {
  await connection.query(sql`
    INSERT INTO "SomeTable" (
      "col1",
      "col2"
    ) VALUES (
      'val1',
      'val2'
    )`);
}

This will strip the unnecessary indentation:

INSERT INTO "SomeTable" (
  "col1",
  "col2"
) VALUES (
  'val1',
  'val2'
)

Note there's no empty line before the query (empty lines at the beginning and end are trimmed) and there are 0 instead of 4 spaces of indentation (minimum indentation is 4 spaces, which is then removed from all lines).

Could we also have indentation-stripping here?

@sgarner
Copy link
Collaborator

sgarner commented May 2, 2025

I rarely have single-line SQL template strings. Currently I use my own implementation which relies on common-tags (and utility-types) which keeps a consistent indentation in the SQL code. E.g.:

...

Note there's no empty line before the query (empty lines at the beginning and end are trimmed) and there are 0 instead of 4 spaces of indentation (minimum indentation is 4 spaces, which is then removed from all lines).

Could we also have indentation-stripping here?

This would be a nice feature! But it could be implemented for query() as well, not just tagged sql literals, so I think it should be a separate PR?

@alumni
Copy link
Collaborator

alumni commented May 2, 2025

@sgarner it makes sense only for template strings

https://github.com/zspecza/common-tags?tab=readme-ov-file#stripindent

import { source } from 'common-tags';

export const sql = (
  strings: TemplateStringsArray,
  ...args: unknown[]
) => source(
  strings,
  new Array(args.length).fill('?')
);

Note: the ? placeholder is driver-dependent. Some (sqlite) drivers use $n instead IIRC.

Note 2: common-tags hasn't been updated in some time.

@sgarner
Copy link
Collaborator

sgarner commented May 2, 2025

@sgarner it makes sense only for template strings

Yes, but you can write your SQL in a template string with query() as well?

@alumni
Copy link
Collaborator

alumni commented May 3, 2025

@sgarner Maybe I should rephrase: I didn't say we should do .query(sql`...`). That won't work because we can't serialize all parameters (or we could, but we'd need to implement serialization for each driver, like DBeaver does). We can keep connection.sql`...` like in this PR, and simply call .query(queryString, parameters). I'm just wondering why do we need the serializeParameter function, and if can remove the indentation from the query string, so the multi-line SQL code that the users write looks clean.

Now one more thing: I often see in projects that the template string expressions aren't always values that need escaping. Should we provide some helper function (e.g. safeValue, escapeAlias) that return branded strings which are handled differently? E.g.:

await connection.sql`
  SELECT *
  FROM ${escapeAlias(schema)}."SomeTable"
  WHERE ${safeValue(
    conditions.join(' AND ')
  )}
`;

Newbie012 added 2 commits May 3, 2025 23:28
…implementations

* Removed the serializeParameter method from the Driver interface and its implementations in MysqlDriver and AbstractSqliteDriver.
* Introduced a new toParameter function in SqlTagUtils to handle parameter serialization, improving code clarity and maintainability.
* Added the dedent package to package.json and package-lock.json.
* Integrated dedent into the buildSqlTag function to improve query formatting by removing excess whitespace.
@pkg-pr-new
Copy link

pkg-pr-new bot commented May 3, 2025

typeorm-sql-js-example

npm i https://pkg.pr.new/typeorm/typeorm@11432

commit: 8e9a561

Newbie012 and others added 10 commits May 8, 2025 11:01
…umentation

- Removed the `sql` method from multiple query runners (e.g., AuroraMysql, Postgres, MongoDB) to centralize SQL tag handling in the BaseQueryRunner.
- Updated the SQL tag documentation to clarify usage and support for relational databases only.
- Improved error handling in SQL tag utility functions to restrict unsupported argument types.
- Adjusted tests for SQL tag parameters to enhance clarity and ensure proper functionality.
@alumni
Copy link
Collaborator

alumni commented May 8, 2025

Wow, looks quite nice 😃

In the future, if this works well, we could also consider using template strings in migrations.

@michaelbromley michaelbromley added this to the Next Major milestone May 8, 2025
Copy link
Collaborator

@sgarner sgarner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nearly there! Just a few final adjustments

@sgarner
Copy link
Collaborator

sgarner commented May 8, 2025

In the future, if this works well, we could also consider using template strings in migrations.

I'm not sure how useful raw SQL will be in generated migrations, since every database engine has proprietary syntax for a lot of DDL stuff - which we currently handle with QueryRunner methods. (Of course, if users are writing migrations by hand they can use it.)

Copy link
Collaborator

@sgarner sgarner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To avoid another review cycle, I committed my suggested changes. There is still one superfluous test which I think could be dropped.

Otherwise this looks good to go 👍

Thanks again @Newbie012 !

@sgarner sgarner merged commit c464ff8 into typeorm:master May 9, 2025
79 checks passed
@macksal
Copy link
Contributor

macksal commented Jun 29, 2025

In the future, if this works well, we could also consider using template strings in migrations.

I'm not sure how useful raw SQL will be in generated migrations, since every database engine has proprietary syntax for a lot of DDL stuff - which we currently handle with QueryRunner methods. (Of course, if users are writing migrations by hand they can use it.)

@sgarner it seems like you're saying raw SQL is only useful in hand-written migrations, but isn't it the opposite? The generated migrations I get are always using raw SQL rather than the QueryRunner methods. I can only see those methods being used in hand-written migrations.

I found myself here thinking it would be nice for the generated queries to be tagged with sql`` automatically for tooling purposes.

@alumni
Copy link
Collaborator

alumni commented Jun 29, 2025

Actually, migrations contain driver-dependent raw sql, but wrapped in JS/TS, it's currently executed with queryRunner.query.

It could be easily replaced by SQL templates strings. The advantage for it is that it would make migrations easier to review, since you can get syntax highlighting for the query (in e.g. BitBucket it's built-in, in code editors it's available via plug-ins).

Replacing queryRunner.query with queryRunner.sql should be a simple change, can be done quite easily if someone is willing to open a PR.

I'm thinking to improve migration generation to be more flexible overall. I currently have to write a script that modifies the generated migration to work for me. But that's something more complex for which I need quite some time and I'd rather do other things in TypeORM which are more important.

@sgarner
Copy link
Collaborator

sgarner commented Jun 29, 2025

Apologies, migration generation isn't a feature I use myself. I wrongly thought it would be using the QueryRunner methods for schema modification, but you're right it does generate raw SQL (I wonder why? 🤔).

In that case I agree that switching to SQL template strings sounds like a useful improvement.

renatosugimoto added a commit to renatosugimoto/ts-nestjs-trainning that referenced this pull request Jul 3, 2025
![snyk-top-banner](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests/pr-banner-default.svg)


<h3>Snyk has created this PR to upgrade typeorm from 0.3.23 to
0.3.24.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.

<hr/>


- The recommended version is **15 versions** ahead of your current
version.

- The recommended version was released **a month ago**.

#### Issues fixed by the recommended upgrade:

|  | Issue | Score | Exploit Maturity |

:-------------------------:|:-------------------------|:-------------------------|:-------------------------
![critical
severity](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests//severity-critical.svg
'critical severity') | Uncaught
Exception<br/>[SNYK-JS-MULTER-10299078](https://snyk.io/vuln/SNYK-JS-MULTER-10299078)
| **746** | No Known Exploit



<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>typeorm</b></summary>
    <ul>
      <li>
<b>0.3.24</b> - <a
href="https://redirect.github.com/typeorm/typeorm/releases/tag/0.3.24">2025-05-14</a></br><h2>What's
Changed</h2>
<ul>
<li>feat: add tagged template for executing raw SQL queries by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/Newbie012/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/Newbie012">@ Newbie012</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3028712893" data-permission-text="Title is private"
data-url="typeorm/typeorm#11432"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11432/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11432">#11432</a></li>
<li>chore: Add husky and lint-staged by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/maxbronnikov10/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/maxbronnikov10">@ maxbronnikov10</a>
in <a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="3044164801" data-permission-text="Title is private"
data-url="typeorm/typeorm#11448"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11448/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11448">#11448</a></li>
<li>fix: resolve pkg.pr.new issue by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/naorpeled/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/naorpeled">@ naorpeled</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3054189764" data-permission-text="Title is private"
data-url="typeorm/typeorm#11463"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11463/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11463">#11463</a></li>
<li>perf: improve save performance during entities update by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/lotczyk/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/lotczyk">@ lotczyk</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3049144737" data-permission-text="Title is private"
data-url="typeorm/typeorm#11456"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11456/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11456">#11456</a></li>
<li>refactor: remove unused NamingStrategyNotFoundError by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3053756244" data-permission-text="Title is private"
data-url="typeorm/typeorm#11462"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11462/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11462">#11462</a></li>
<li>chore: add note about breaking change in 0.3.23 by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3057590521" data-permission-text="Title is private"
data-url="typeorm/typeorm#11469"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11469/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11469">#11469</a></li>
<li>build: include db version in coveralls flag-name by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3053694931" data-permission-text="Title is private"
data-url="typeorm/typeorm#11461"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11461/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11461">#11461</a></li>
<li>chore: include warning about update({}) in changelog by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/sgarner/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/sgarner">@ sgarner</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3058303343" data-permission-text="Title is private"
data-url="typeorm/typeorm#11471"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11471/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11471">#11471</a></li>
<li>feat: add updateAll and deleteAll methods to EntityManager and
Repository APIs by <a class="user-mention notranslate"
data-hovercard-type="user" data-hovercard-url="/users/sgarner/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/sgarner">@ sgarner</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3051787023" data-permission-text="Title is private"
data-url="typeorm/typeorm#11459"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11459/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11459">#11459</a></li>
<li>Fix/11466 mssql find operator by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/christian-forgacs/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/christian-forgacs">@
christian-forgacs</a> in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3056841300"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11468"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11468/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11468">#11468</a></li>
<li>feat(spanner): support insert returning by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/denes/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/denes">@ denes</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3052844885" data-permission-text="Title is private"
data-url="typeorm/typeorm#11460"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11460/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11460">#11460</a></li>
<li>chore: clarify commit practices by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3058510988" data-permission-text="Title is private"
data-url="typeorm/typeorm#11472"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11472/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11472">#11472</a></li>
<li>fix(mssql): avoid mutating input parameter array values by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/sgarner/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/sgarner">@ sgarner</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3061331662" data-permission-text="Title is private"
data-url="typeorm/typeorm#11476"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11476/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11476">#11476</a></li>
<li>fix: capacitor driver PRAGMA bug by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/AlexAzartsev/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/AlexAzartsev">@ AlexAzartsev</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3056524220" data-permission-text="Title is private"
data-url="typeorm/typeorm#11467"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11467/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11467">#11467</a></li>
<li>chore: version 0.3.24 by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3063696327" data-permission-text="Title is private"
data-url="typeorm/typeorm#11478"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11478/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11478">#11478</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/denes/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/denes">@ denes</a> made their first
contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3052844885"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11460"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11460/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11460">#11460</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/AlexAzartsev/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/AlexAzartsev">@ AlexAzartsev</a> made
their first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3056524220"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11467"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11467/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11467">#11467</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link"
href="https://redirect.github.com/typeorm/typeorm/compare/0.3.23...0.3.24"><tt>0.3.23...0.3.24</tt></a></p>
      </li>
      <li>
        <b>0.3.24-dev.e9eaf79</b> - 2025-05-13
      </li>
      <li>
        <b>0.3.24-dev.d325d9e</b> - 2025-05-14
      </li>
      <li>
        <b>0.3.24-dev.c464ff8</b> - 2025-05-09
      </li>
      <li>
        <b>0.3.24-dev.b8dbca5</b> - 2025-05-14
      </li>
      <li>
        <b>0.3.24-dev.a6b61f7</b> - 2025-05-13
      </li>
      <li>
        <b>0.3.24-dev.a213bbd</b> - 2025-05-09
      </li>
      <li>
        <b>0.3.24-dev.9f889b3</b> - 2025-05-13
      </li>
      <li>
        <b>0.3.24-dev.80e9b30</b> - 2025-05-07
      </li>
      <li>
        <b>0.3.24-dev.6d1c4f0</b> - 2025-05-12
      </li>
      <li>
        <b>0.3.24-dev.39a6562</b> - 2025-05-12
      </li>
      <li>
        <b>0.3.24-dev.15de733</b> - 2025-05-11
      </li>
      <li>
        <b>0.3.24-dev.144634d</b> - 2025-05-13
      </li>
      <li>
        <b>0.3.24-dev.1198dc2</b> - 2025-05-12
      </li>
      <li>
        <b>0.3.24-dev.2168441</b> - 2025-05-11
      </li>
      <li>
<b>0.3.23</b> - <a
href="https://redirect.github.com/typeorm/typeorm/releases/tag/0.3.23">2025-05-07</a></br><h3><g-emoji
class="g-emoji" alias="warning">⚠️</g-emoji> Note on a breaking
change</h3>
<p>This release includes a technically breaking change (from <a
href="https://redirect.github.com/typeorm/typeorm/pull/10910"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10910/hovercard">this PR</a>)
in the behaviour of the <code>delete</code> and <code>update</code>
methods of the EntityManager and Repository APIs, when an empty object
is supplied as the criteria:</p>
<div class="highlight highlight-source-ts notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="await
repository.delete({})
await repository.update({}, { foo: 'bar' })"><pre><span
class="pl-k">await</span> <span class="pl-s1">repository</span><span
class="pl-kos">.</span><span class="pl-en">delete</span><span
class="pl-kos">(</span><span class="pl-kos">{</span><span
class="pl-kos">}</span><span class="pl-kos">)</span>
<span class="pl-k">await</span> <span
class="pl-s1">repository</span><span class="pl-kos">.</span><span
class="pl-en">update</span><span class="pl-kos">(</span><span
class="pl-kos">{</span><span class="pl-kos">}</span><span
class="pl-kos">,</span> <span class="pl-kos">{</span> <span
class="pl-c1">foo</span>: <span class="pl-s">'bar'</span> <span
class="pl-kos">}</span><span class="pl-kos">)</span></pre></div>
<ul>
<li><strong>Old behaviour</strong> was to delete or update all rows in
the table</li>
<li><strong>New behaviour</strong> is to throw an error: <code>Empty
criteria(s) are not allowed for the delete/update method.</code></li>
</ul>
<p>Why?</p>
<p>This behaviour was not documented and is considered dangerous as it
can allow a badly-formed object (e.g. with an undefined id) to
inadvertently delete or update the whole table.</p>
<p>When the intention actually was to delete or update all rows, such
queries can be rewritten using the QueryBuilder API:</p>
<div class="highlight highlight-source-ts notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="await
repository.createQueryBuilder().delete().execute()
// executes: DELETE FROM table_name
await repository.createQueryBuilder().update().set({ foo: 'bar'
}).execute()
// executes: UPDATE table_name SET foo = 'bar'"><pre><span
class="pl-k">await</span> <span class="pl-s1">repository</span><span
class="pl-kos">.</span><span
class="pl-en">createQueryBuilder</span><span
class="pl-kos">(</span><span class="pl-kos">)</span><span
class="pl-kos">.</span><span class="pl-en">delete</span><span
class="pl-kos">(</span><span class="pl-kos">)</span><span
class="pl-kos">.</span><span class="pl-en">execute</span><span
class="pl-kos">(</span><span class="pl-kos">)</span>
<span class="pl-c">// executes: DELETE FROM table_name</span>
<span class="pl-k">await</span> <span
class="pl-s1">repository</span><span class="pl-kos">.</span><span
class="pl-en">createQueryBuilder</span><span
class="pl-kos">(</span><span class="pl-kos">)</span><span
class="pl-kos">.</span><span class="pl-en">update</span><span
class="pl-kos">(</span><span class="pl-kos">)</span><span
class="pl-kos">.</span><span class="pl-en">set</span><span
class="pl-kos">(</span><span class="pl-kos">{</span> <span
class="pl-c1">foo</span>: <span class="pl-s">'bar'</span> <span
class="pl-kos">}</span><span class="pl-kos">)</span><span
class="pl-kos">.</span><span class="pl-en">execute</span><span
class="pl-kos">(</span><span class="pl-kos">)</span>
<span class="pl-c">// executes: UPDATE table_name SET foo =
'bar'</span></pre></div>
<p>An alternative method for deleting all rows is to use:</p>
<div class="highlight highlight-source-ts notranslate position-relative
overflow-auto" data-snippet-clipboard-copy-content="await
repository.clear()
// executes: TRUNCATE TABLE table_name"><pre><span
class="pl-k">await</span> <span class="pl-s1">repository</span><span
class="pl-kos">.</span><span class="pl-en">clear</span><span
class="pl-kos">(</span><span class="pl-kos">)</span>
<span class="pl-c">// executes: TRUNCATE TABLE
table_name</span></pre></div>
<h2>What's Changed</h2>
<ul>
<li>chore: Fix publish command by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/michaelbromley/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/michaelbromley">@ michaelbromley</a>
in <a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="2968862026" data-permission-text="Title is private"
data-url="typeorm/typeorm#11379"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11379/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11379">#11379</a></li>
<li>build(deps): bump tar-fs from 2.1.1 to 2.1.2 by <a
class="user-mention notranslate" data-hovercard-type="organization"
data-hovercard-url="/orgs/dependabot/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/dependabot">@ dependabot</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2957371220" data-permission-text="Title is private"
data-url="typeorm/typeorm#11370"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11370/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11370">#11370</a></li>
<li>feat: add new foreign key decorator, and entity schemas options by
<a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/yevhen-komarov/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/yevhen-komarov">@ yevhen-komarov</a>
in <a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="2687967148" data-permission-text="Title is private"
data-url="typeorm/typeorm#11144"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11144/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11144">#11144</a></li>
<li>chore: fix changelog generation by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/alumni/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/alumni">@ alumni</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2972448760" data-permission-text="Title is private"
data-url="typeorm/typeorm#11381"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11381/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11381">#11381</a></li>
<li>feat: Build ESM migrations for JS by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/w3nl/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/w3nl">@ w3nl</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2212952697" data-permission-text="Title is private"
data-url="typeorm/typeorm#10802"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10802/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/10802">#10802</a></li>
<li>docs(entity-subscribers): document primary key availability in
UpdateEvent by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/jovanadjuric/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/jovanadjuric">@ jovanadjuric</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2879598352" data-permission-text="Title is private"
data-url="typeorm/typeorm#11308"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11308/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11308">#11308</a></li>
<li>test: remove unused type parameter from decorators by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2991906784" data-permission-text="Title is private"
data-url="typeorm/typeorm#11412"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11412/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11412">#11412</a></li>
<li>feat: Add query timeout support for MySql by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/iliagrvch/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/iliagrvch">@ iliagrvch</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2258557417" data-permission-text="Title is private"
data-url="typeorm/typeorm#10846"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10846/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/10846">#10846</a></li>
<li>Chore: Added logging to the Entity Listener Metadata by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/JackNytely/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/JackNytely">@ JackNytely</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2781719148" data-permission-text="Title is private"
data-url="typeorm/typeorm#11234"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11234/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11234">#11234</a></li>
<li>Propagate <code>aggregate</code> method's generic parameter to its
returned cursor by <a class="user-mention notranslate"
data-hovercard-type="user" data-hovercard-url="/users/pringon/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/pringon">@ pringon</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2172571707" data-permission-text="Title is private"
data-url="typeorm/typeorm#10754"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10754/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/10754">#10754</a></li>
<li>refactor: define Position type for GeoJSON objects by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/knoid/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/knoid">@ knoid</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2809319774" data-permission-text="Title is private"
data-url="typeorm/typeorm#11259"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11259/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11259">#11259</a></li>
<li>perf(query-runner): use Date.now() intead of +new Date() by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/Samuron/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/Samuron">@ Samuron</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2219802507" data-permission-text="Title is private"
data-url="typeorm/typeorm#10811"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10811/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/10811">#10811</a></li>
<li>feat: add FormattedConsoleLogger by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/w3nl/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/w3nl">@ w3nl</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2986903088" data-permission-text="Title is private"
data-url="typeorm/typeorm#11401"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11401/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11401">#11401</a></li>
<li>docs: update repository additional chunk option usage example by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/knicefire/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/knicefire">@ knicefire</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2843758327" data-permission-text="Title is private"
data-url="typeorm/typeorm#11282"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11282/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11282">#11282</a></li>
<li>docs: Correct "its" -&gt; "it's" by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mdippery/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mdippery">@ mdippery</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3018348450" data-permission-text="Title is private"
data-url="typeorm/typeorm#11428"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11428/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11428">#11428</a></li>
<li>fix: prevent error when replication is undefined by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/caiquecastro/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/caiquecastro">@ caiquecastro</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3002712796" data-permission-text="Title is private"
data-url="typeorm/typeorm#11423"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11423/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11423">#11423</a></li>
<li>fix: change how array columns are compared on column changed
detection by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/mnbaccari/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mnbaccari">@ mnbaccari</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2823707993" data-permission-text="Title is private"
data-url="typeorm/typeorm#11269"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11269/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11269">#11269</a></li>
<li>build: setup testing matrix for postgres 14 and 17 by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3029823068" data-permission-text="Title is private"
data-url="typeorm/typeorm#11433"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11433/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11433">#11433</a></li>
<li>fix: beforeQuery promises not awaited before query execution by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/TanguyPoly/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/TanguyPoly">@ TanguyPoly</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2566065347" data-permission-text="Title is private"
data-url="typeorm/typeorm#11086"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11086/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11086">#11086</a></li>
<li>fix(sap): cleanup after streaming by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/alumni/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/alumni">@ alumni</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2979129978" data-permission-text="Title is private"
data-url="typeorm/typeorm#11399"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11399/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11399">#11399</a></li>
<li>feat: release PR releases using pkg.pr.new by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/naorpeled/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/naorpeled">@ naorpeled</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3033396687" data-permission-text="Title is private"
data-url="typeorm/typeorm#11434"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11434/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11434">#11434</a></li>
<li>docs: clarify where to add new tests by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3038123230" data-permission-text="Title is private"
data-url="typeorm/typeorm#11438"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11438/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11438">#11438</a></li>
<li>fix: update/delete/softDelete by criteria of condition objects by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/maxbronnikov10/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/maxbronnikov10">@ maxbronnikov10</a>
in <a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="2323243206" data-permission-text="Title is private"
data-url="typeorm/typeorm#10910"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10910/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/10910">#10910</a></li>
<li>chore: Version 0.3.23 by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/michaelbromley/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/michaelbromley">@ michaelbromley</a>
in <a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="3039024533" data-permission-text="Title is private"
data-url="typeorm/typeorm#11439"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11439/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11439">#11439</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/yevhen-komarov/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/yevhen-komarov">@ yevhen-komarov</a>
made their first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2687967148"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11144"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11144/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11144">#11144</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/w3nl/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/w3nl">@ w3nl</a> made their first
contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2212952697"
data-permission-text="Title is private"
data-url="typeorm/typeorm#10802"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10802/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/10802">#10802</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/iliagrvch/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/iliagrvch">@ iliagrvch</a> made their
first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2258557417"
data-permission-text="Title is private"
data-url="typeorm/typeorm#10846"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10846/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/10846">#10846</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/JackNytely/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/JackNytely">@ JackNytely</a> made
their first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2781719148"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11234"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11234/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11234">#11234</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/pringon/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/pringon">@ pringon</a> made their
first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2172571707"
data-permission-text="Title is private"
data-url="typeorm/typeorm#10754"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10754/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/10754">#10754</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/knoid/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/knoid">@ knoid</a> made their first
contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2809319774"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11259"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11259/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11259">#11259</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/Samuron/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/Samuron">@ Samuron</a> made their
first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2219802507"
data-permission-text="Title is private"
data-url="typeorm/typeorm#10811"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10811/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/10811">#10811</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/knicefire/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/knicefire">@ knicefire</a> made their
first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2843758327"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11282"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11282/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11282">#11282</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/caiquecastro/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/caiquecastro">@ caiquecastro</a> made
their first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3002712796"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11423"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11423/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11423">#11423</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mnbaccari/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mnbaccari">@ mnbaccari</a> made their
first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2823707993"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11269"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11269/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11269">#11269</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/TanguyPoly/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/TanguyPoly">@ TanguyPoly</a> made
their first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2566065347"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11086"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11086/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11086">#11086</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/maxbronnikov10/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/maxbronnikov10">@ maxbronnikov10</a>
made their first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="2323243206"
data-permission-text="Title is private"
data-url="typeorm/typeorm#10910"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10910/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/10910">#10910</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link"
href="https://redirect.github.com/typeorm/typeorm/compare/0.3.22...0.3.23"><tt>0.3.22...0.3.23</tt></a></p>
      </li>
    </ul>
from <a
href="https://redirect.github.com/typeorm/typeorm/releases">typeorm
GitHub release notes</a>
  </details>
</details>

---

> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.
> - Max score is 1000. Note that the real score may have changed since
the PR was raised.
> - Snyk has automatically assigned this pull request, [set who gets
assigned](/settings/integration).

---

**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._

**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiIwZDIzMmRkMS0xZTAzLTRjNmItODc0Zi1iOWIxNWRhYTQ0MWEiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjBkMjMyZGQxLTFlMDMtNGM2Yi04NzRmLWI5YjE1ZGFhNDQxYSJ9fQ=="
width="0" height="0"/>

> - 🧐 [View latest project
report](https://app.snyk.io/org/renatosugimoto/project/31d5132a-e6b1-4b8a-a6a3-43b157a71ac5?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 👩‍💻 [Set who automatically gets
assigned](https://app.snyk.io/org/renatosugimoto/project/31d5132a-e6b1-4b8a-a6a3-43b157a71ac5/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr/)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/renatosugimoto/project/31d5132a-e6b1-4b8a-a6a3-43b157a71ac5/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/renatosugimoto/project/31d5132a-e6b1-4b8a-a6a3-43b157a71ac5/settings/integration?pkg&#x3D;typeorm&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"typeorm","from":"0.3.23","to":"0.3.24"}],"env":"prod","hasFixes":true,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":["SNYK-JS-MULTER-10299078"],"prId":"0d232dd1-1e03-4c6b-874f-b9b15daa441a","prPublicId":"0d232dd1-1e03-4c6b-874f-b9b15daa441a","packageManager":"npm","priorityScoreList":[746],"projectPublicId":"31d5132a-e6b1-4b8a-a6a3-43b157a71ac5","projectUrl":"https://app.snyk.io/org/renatosugimoto/project/31d5132a-e6b1-4b8a-a6a3-43b157a71ac5?utm_source=github&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":["priorityScore"],"type":"auto","upgrade":["SNYK-JS-MULTER-10299078"],"upgradeInfo":{"versionsDiff":15,"publishedDate":"2025-05-14T18:06:30.168Z"},"vulns":["SNYK-JS-MULTER-10299078"]}'

Co-authored-by: snyk-bot <[email protected]>
renatosugimoto added a commit to renatosugimoto/ts-nestjs-trainning that referenced this pull request Jul 22, 2025
![snyk-top-banner](https://res.cloudinary.com/snyk/image/upload/r-d/scm-platform/snyk-pull-requests/pr-banner-default.svg)


<h3>Snyk has created this PR to upgrade typeorm from 0.3.24 to
0.3.25.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.

<hr/>


- The recommended version is **22 versions** ahead of your current
version.

- The recommended version was released **22 days ago**.



<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>typeorm</b></summary>
    <ul>
      <li>
<b>0.3.25</b> - <a
href="https://redirect.github.com/typeorm/typeorm/releases/tag/0.3.25">2025-06-19</a></br><h2>What's
Changed</h2>
<ul>
<li>docs: use correct SQL statements in softDelete/restore comments by
<a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/sgarner/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/sgarner">@ sgarner</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3081453606" data-permission-text="Title is private"
data-url="typeorm/typeorm#11489"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11489/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11489">#11489</a></li>
<li>fix: resolve alias or table name in upsert and orUpdate for
PostgreSQL driver conditionally by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/mmarifat/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mmarifat">@ mmarifat</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3047096667" data-permission-text="Title is private"
data-url="typeorm/typeorm#11452"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11452/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11452">#11452</a></li>
<li>feat(spanner): use credentials from connection options by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/denes/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/denes">@ denes</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3086575395" data-permission-text="Title is private"
data-url="typeorm/typeorm#11492"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11492/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11492">#11492</a></li>
<li>feat: add upsert support for Oracle, SQLServer and SAP HANA by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/Yuuki-Sakura/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/Yuuki-Sakura">@ Yuuki-Sakura</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2404532307" data-permission-text="Title is private"
data-url="typeorm/typeorm#10974"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/10974/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/10974">#10974</a></li>
<li>fix: handle limit(0) and offset(0) correctly in SelectQueryBuilder
by <a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/yeonghun104/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/yeonghun104">@ yeonghun104</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3116497992" data-permission-text="Title is private"
data-url="typeorm/typeorm#11507"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11507/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11507">#11507</a></li>
<li>fix: add collation update detection in PostgresDriver by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/asn6878/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/asn6878">@ asn6878</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3040527205" data-permission-text="Title is private"
data-url="typeorm/typeorm#11441"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11441/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11441">#11441</a></li>
<li>feat: add typesense/docsearch-scraper by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/gioboa/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/gioboa">@ gioboa</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3003003060" data-permission-text="Title is private"
data-url="typeorm/typeorm#11424"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11424/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11424">#11424</a></li>
<li>chore: improve linting by <a class="user-mention notranslate"
data-hovercard-type="user" data-hovercard-url="/users/alumni/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/alumni">@ alumni</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3122060339" data-permission-text="Title is private"
data-url="typeorm/typeorm#11510"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11510/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11510">#11510</a></li>
<li>chore: improve linting (fixup) by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/alumni/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/alumni">@ alumni</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3122508176" data-permission-text="Title is private"
data-url="typeorm/typeorm#11511"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11511/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11511">#11511</a></li>
<li>docs: new website initial commit by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/naorpeled/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/naorpeled">@ naorpeled</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2991307150" data-permission-text="Title is private"
data-url="typeorm/typeorm#11408"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11408/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11408">#11408</a></li>
<li>fix: fix up doc search workflow by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/gioboa/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/gioboa">@ gioboa</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3125253351" data-permission-text="Title is private"
data-url="typeorm/typeorm#11513"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11513/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11513">#11513</a></li>
<li>chore: update workflows to ignore changes in docs directory by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/dlhck/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/dlhck">@ dlhck</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3132733241" data-permission-text="Title is private"
data-url="typeorm/typeorm#11518"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11518/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11518">#11518</a></li>
<li>feat(docs): add Plausible analytics script to Docusaurus config by
<a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/dlhck/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/dlhck">@ dlhck</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3132688431" data-permission-text="Title is private"
data-url="typeorm/typeorm#11517"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11517/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11517">#11517</a></li>
<li>docs: add note about using YugabyteDB by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3137325649" data-permission-text="Title is private"
data-url="typeorm/typeorm#11521"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11521/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11521">#11521</a></li>
<li>chore(docs): improve website generation config by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/alumni/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/alumni">@ alumni</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3143665449" data-permission-text="Title is private"
data-url="typeorm/typeorm#11527"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11527/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11527">#11527</a></li>
<li>fix(tree-entity): closure junction table primary key definition
should match parent table by <a class="user-mention notranslate"
data-hovercard-type="user" data-hovercard-url="/users/gongAll/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/gongAll">@ gongAll</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3002433767" data-permission-text="Title is private"
data-url="typeorm/typeorm#11422"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11422/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11422">#11422</a></li>
<li>docs: add heading to Getting Started page by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/sgarner/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/sgarner">@ sgarner</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3151614715" data-permission-text="Title is private"
data-url="typeorm/typeorm#11531"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11531/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11531">#11531</a></li>
<li>fix: Multiple relations with same columns cause invalid SQL to be
generated by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/yevhen-komarov/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/yevhen-komarov">@ yevhen-komarov</a>
in <a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="2984486062" data-permission-text="Title is private"
data-url="typeorm/typeorm#11400"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11400/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11400">#11400</a></li>
<li>fix: fix null pointer exception on date array column comparison by
<a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mnbaccari/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mnbaccari">@ mnbaccari</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3153601577" data-permission-text="Title is private"
data-url="typeorm/typeorm#11532"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11532/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11532">#11532</a></li>
<li>chore(ci): simplify workflows by <a class="user-mention notranslate"
data-hovercard-type="user" data-hovercard-url="/users/alumni/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/alumni">@ alumni</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3147752910" data-permission-text="Title is private"
data-url="typeorm/typeorm#11530"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11530/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11530">#11530</a></li>
<li>fix: improve async calls on disconnect by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/alumni/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/alumni">@ alumni</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3139265175" data-permission-text="Title is private"
data-url="typeorm/typeorm#11523"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11523/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11523">#11523</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mmarifat/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mmarifat">@ mmarifat</a> made their
first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3047096667"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11452"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11452/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11452">#11452</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/yeonghun104/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/yeonghun104">@ yeonghun104</a> made
their first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3116497992"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11507"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11507/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11507">#11507</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/asn6878/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/asn6878">@ asn6878</a> made their
first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3040527205"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11441"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11441/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11441">#11441</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/gongAll/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/gongAll">@ gongAll</a> made their
first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3002433767"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11422"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11422/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11422">#11422</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link"
href="https://redirect.github.com/typeorm/typeorm/compare/0.3.24...0.3.25"><tt>0.3.24...0.3.25</tt></a></p>
      </li>
      <li>
        <b>0.3.25-dev.eb3093d</b> - 2025-06-05
      </li>
      <li>
        <b>0.3.25-dev.ead4f98</b> - 2025-06-18
      </li>
      <li>
        <b>0.3.25-dev.ce23d46</b> - 2025-06-16
      </li>
      <li>
        <b>0.3.25-dev.b1e93f7</b> - 2025-06-18
      </li>
      <li>
        <b>0.3.25-dev.af9ecc0</b> - 2025-06-17
      </li>
      <li>
        <b>0.3.25-dev.a9c16ee</b> - 2025-06-05
      </li>
      <li>
        <b>0.3.25-dev.930eefd</b> - 2025-06-06
      </li>
      <li>
        <b>0.3.25-dev.86f12c9</b> - 2025-06-10
      </li>
      <li>
        <b>0.3.25-dev.65d5a00</b> - 2025-06-05
      </li>
      <li>
        <b>0.3.25-dev.63a3b9a</b> - 2025-06-17
      </li>
      <li>
        <b>0.3.25-dev.61753b1</b> - 2025-06-05
      </li>
      <li>
        <b>0.3.25-dev.5003aaa</b> - 2025-05-21
      </li>
      <li>
        <b>0.3.25-dev.4b0ffee</b> - 2025-06-06
      </li>
      <li>
        <b>0.3.25-dev.42e7cbe</b> - 2025-06-17
      </li>
      <li>
        <b>0.3.25-dev.42913b9</b> - 2025-06-11
      </li>
      <li>
        <b>0.3.25-dev.413f0a6</b> - 2025-06-05
      </li>
      <li>
        <b>0.3.25-dev.2bfa300</b> - 2025-06-04
      </li>
      <li>
        <b>0.3.25-dev.24c3e38</b> - 2025-06-05
      </li>
      <li>
        <b>0.3.25-dev.12a71e4</b> - 2025-05-14
      </li>
      <li>
        <b>0.3.25-dev.07d7913</b> - 2025-06-04
      </li>
      <li>
        <b>0.3.25-dev.03faa78</b> - 2025-06-14
      </li>
      <li>
<b>0.3.24</b> - <a
href="https://redirect.github.com/typeorm/typeorm/releases/tag/0.3.24">2025-05-14</a></br><h2>What's
Changed</h2>
<ul>
<li>feat: add tagged template for executing raw SQL queries by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/Newbie012/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/Newbie012">@ Newbie012</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3028712893" data-permission-text="Title is private"
data-url="typeorm/typeorm#11432"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11432/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11432">#11432</a></li>
<li>chore: Add husky and lint-staged by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/maxbronnikov10/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/maxbronnikov10">@ maxbronnikov10</a>
in <a class="issue-link js-issue-link" data-error-text="Failed to load
title" data-id="3044164801" data-permission-text="Title is private"
data-url="typeorm/typeorm#11448"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11448/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11448">#11448</a></li>
<li>fix: resolve pkg.pr.new issue by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/naorpeled/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/naorpeled">@ naorpeled</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3054189764" data-permission-text="Title is private"
data-url="typeorm/typeorm#11463"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11463/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11463">#11463</a></li>
<li>perf: improve save performance during entities update by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/lotczyk/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/lotczyk">@ lotczyk</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3049144737" data-permission-text="Title is private"
data-url="typeorm/typeorm#11456"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11456/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11456">#11456</a></li>
<li>refactor: remove unused NamingStrategyNotFoundError by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3053756244" data-permission-text="Title is private"
data-url="typeorm/typeorm#11462"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11462/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11462">#11462</a></li>
<li>chore: add note about breaking change in 0.3.23 by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3057590521" data-permission-text="Title is private"
data-url="typeorm/typeorm#11469"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11469/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11469">#11469</a></li>
<li>build: include db version in coveralls flag-name by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3053694931" data-permission-text="Title is private"
data-url="typeorm/typeorm#11461"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11461/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11461">#11461</a></li>
<li>chore: include warning about update({}) in changelog by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/sgarner/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/sgarner">@ sgarner</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3058303343" data-permission-text="Title is private"
data-url="typeorm/typeorm#11471"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11471/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11471">#11471</a></li>
<li>feat: add updateAll and deleteAll methods to EntityManager and
Repository APIs by <a class="user-mention notranslate"
data-hovercard-type="user" data-hovercard-url="/users/sgarner/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/sgarner">@ sgarner</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3051787023" data-permission-text="Title is private"
data-url="typeorm/typeorm#11459"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11459/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11459">#11459</a></li>
<li>Fix/11466 mssql find operator by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/christian-forgacs/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/christian-forgacs">@
christian-forgacs</a> in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3056841300"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11468"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11468/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11468">#11468</a></li>
<li>feat(spanner): support insert returning by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/denes/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/denes">@ denes</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3052844885" data-permission-text="Title is private"
data-url="typeorm/typeorm#11460"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11460/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11460">#11460</a></li>
<li>chore: clarify commit practices by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3058510988" data-permission-text="Title is private"
data-url="typeorm/typeorm#11472"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11472/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11472">#11472</a></li>
<li>fix(mssql): avoid mutating input parameter array values by <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/sgarner/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/sgarner">@ sgarner</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3061331662" data-permission-text="Title is private"
data-url="typeorm/typeorm#11476"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11476/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11476">#11476</a></li>
<li>fix: capacitor driver PRAGMA bug by <a class="user-mention
notranslate" data-hovercard-type="user"
data-hovercard-url="/users/AlexAzartsev/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/AlexAzartsev">@ AlexAzartsev</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3056524220" data-permission-text="Title is private"
data-url="typeorm/typeorm#11467"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11467/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11467">#11467</a></li>
<li>chore: version 0.3.24 by <a class="user-mention notranslate"
data-hovercard-type="user"
data-hovercard-url="/users/mguida22/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/mguida22">@ mguida22</a> in <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="3063696327" data-permission-text="Title is private"
data-url="typeorm/typeorm#11478"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11478/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11478">#11478</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/denes/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/denes">@ denes</a> made their first
contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3052844885"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11460"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11460/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11460">#11460</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/AlexAzartsev/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://redirect.github.com/AlexAzartsev">@ AlexAzartsev</a> made
their first contribution in <a class="issue-link js-issue-link"
data-error-text="Failed to load title" data-id="3056524220"
data-permission-text="Title is private"
data-url="typeorm/typeorm#11467"
data-hovercard-type="pull_request"
data-hovercard-url="/typeorm/typeorm/pull/11467/hovercard"
href="https://redirect.github.com/typeorm/typeorm/pull/11467">#11467</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link"
href="https://redirect.github.com/typeorm/typeorm/compare/0.3.23...0.3.24"><tt>0.3.23...0.3.24</tt></a></p>
      </li>
    </ul>
from <a
href="https://redirect.github.com/typeorm/typeorm/releases">typeorm
GitHub release notes</a>
  </details>
</details>

---

> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.
> - Snyk has automatically assigned this pull request, [set who gets
assigned](/settings/integration).

---

**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._

**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiIwYjZmODgzMy0xZWFiLTRmYjItOGY5My1mNDAxMmRhYmFkZWQiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjBiNmY4ODMzLTFlYWItNGZiMi04ZjkzLWY0MDEyZGFiYWRlZCJ9fQ=="
width="0" height="0"/>

> - 🧐 [View latest project
report](https://app.snyk.io/org/renatosugimoto/project/31d5132a-e6b1-4b8a-a6a3-43b157a71ac5?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 👩‍💻 [Set who automatically gets
assigned](https://app.snyk.io/org/renatosugimoto/project/31d5132a-e6b1-4b8a-a6a3-43b157a71ac5/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr/)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/renatosugimoto/project/31d5132a-e6b1-4b8a-a6a3-43b157a71ac5/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/renatosugimoto/project/31d5132a-e6b1-4b8a-a6a3-43b157a71ac5/settings/integration?pkg&#x3D;typeorm&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"typeorm","from":"0.3.24","to":"0.3.25"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"0b6f8833-1eab-4fb2-8f93-f4012dabaded","prPublicId":"0b6f8833-1eab-4fb2-8f93-f4012dabaded","packageManager":"npm","priorityScoreList":[],"projectPublicId":"31d5132a-e6b1-4b8a-a6a3-43b157a71ac5","projectUrl":"https://app.snyk.io/org/renatosugimoto/project/31d5132a-e6b1-4b8a-a6a3-43b157a71ac5?utm_source=github&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":22,"publishedDate":"2025-06-19T18:32:25.818Z"},"vulns":[]}'

Co-authored-by: snyk-bot <[email protected]>
ThbltLmr pushed a commit to ThbltLmr/typeorm that referenced this pull request Dec 2, 2025
* Added a new SQL tagged template feature for executing raw SQL queries with automatic parameter handling.

---------

Co-authored-by: Simon Garner <[email protected]>
@alumni alumni removed this from the Next Major milestone Dec 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants