drizzle-team/drizzle-orm (drizzle-kit)
### [`v0.24.0`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.24.0)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/drizzle-kit@0.23.2...drizzle-kit@0.24.0)
- 🎉 Added iterator support to `mysql2` (sponsored by [@rizen](https://togithub.com/rizen) ❤). Read more in the [docs](https://togithub.com/drizzle-team/drizzle-orm/blob/main/drizzle-orm/src/mysql-core/README.md#querying-large-datasets)
- ❗ `.prepare()` in MySQL no longer requires a name argument
### [`v0.23.2`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.23.2)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0.23.1...drizzle-kit@0.23.2)
- 🐛 Rolled back some breaking changes for drizzle-kit
### [`v0.23.1`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.23.1)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0.23.0...0.23.1)
- 🐛 Re-export `InferModel` from `drizzle-orm`
### [`v0.23.0`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.23.0)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/50f22b0282a6c7a115da4240fd63d9a3fa596526...0.23.0)
- 🎉 Added Knex and Kysely adapters! They allow you to manage the schemas and migrations with Drizzle and query the data with your favorite query builder. See documentation for more details:
- [Knex adapter](https://togithub.com/drizzle-team/drizzle-knex)
- [Kysely adapter](https://togithub.com/drizzle-team/drizzle-kysely)
- 🎉 Added "type maps" to all entities. You can access them via the special `_` property. For example:
```ts
const users = mysqlTable('users', {
id: int('id').primaryKey(),
name: text('name').notNull(),
});
type UserFields = typeof users['_']['columns'];
type InsertUser = typeof users['_']['model']['insert'];
```
Full documentation on the type maps is coming soon.
- 🎉 Added `.$type()` method to all column builders to allow overriding the data type. It also replaces the optional generics on columns.
```ts
// Before
const test = mysqlTable('test', {
jsonField: json('json_field'),
});
// After
const test = mysqlTable('test', {
jsonField: json('json_field').$type(),
});
```
- ❗ Changed syntax for text-based enum columns:
```ts
// Before
const test = mysqlTable('test', {
role: text<'admin' | 'user'>('role'),
});
// After
const test = mysqlTable('test', {
role: text('role', { enum: ['admin', 'user'] }),
});
```
- 🎉 Allowed passing an array of values into `.insert().values()` directly without spreading:
```ts
const users = mysqlTable('users', {
id: int('id').primaryKey(),
name: text('name').notNull(),
});
await users.insert().values([
{ name: 'John' },
{ name: 'Jane' },
]);
```
The spread syntax is now deprecated and will be removed in one of the next releases.
- 🎉 Added "table creators" to allow for table name customization:
```ts
import { mysqlTableCreator } from 'drizzle-orm/mysql-core';
const mysqlTable = mysqlTableCreator((name) => `myprefix_${name}`);
const users = mysqlTable('users', {
id: int('id').primaryKey(),
name: text('name').notNull(),
});
// Users table is a normal table, but its name is `myprefix_users` in runtime
```
- 🎉 Implemented support for selecting/joining raw SQL expressions:
```ts
// select current_date + s.a as dates from generate_series(0,14,7) as s(a);
const result = await db
.select({
dates: sql`current_date + s.a`,
})
.from(sql`generate_series(0,14,7) as s(a)`);
```
- 🐛 Fixed a lot of bugs from user feedback on GitHub and Discord (thank you! ❤). Fixes [#293](https://togithub.com/drizzle-team/drizzle-orm/issues/293) [#301](https://togithub.com/drizzle-team/drizzle-orm/issues/301) [#276](https://togithub.com/drizzle-team/drizzle-orm/issues/276) [#269](https://togithub.com/drizzle-team/drizzle-orm/issues/269) [#253](https://togithub.com/drizzle-team/drizzle-orm/issues/253) [#311](https://togithub.com/drizzle-team/drizzle-orm/issues/311) [#312](https://togithub.com/drizzle-team/drizzle-orm/issues/312)
### [`v0.22.8`](https://togithub.com/drizzle-team/drizzle-orm/compare/db013f5eb7bfb7098bb443493640c79ad0eb8259...50f22b0282a6c7a115da4240fd63d9a3fa596526)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/db013f5eb7bfb7098bb443493640c79ad0eb8259...50f22b0282a6c7a115da4240fd63d9a3fa596526)
### [`v0.22.7`](https://togithub.com/drizzle-team/drizzle-orm/compare/c44b9dc66f8e5cf2851067a5266aea6d3325ffef...db013f5eb7bfb7098bb443493640c79ad0eb8259)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/c44b9dc66f8e5cf2851067a5266aea6d3325ffef...db013f5eb7bfb7098bb443493640c79ad0eb8259)
### [`v0.22.6`](https://togithub.com/drizzle-team/drizzle-orm/compare/f389ebdf7d98d7379991601bc3c9e28f83fd0c85...c44b9dc66f8e5cf2851067a5266aea6d3325ffef)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/f389ebdf7d98d7379991601bc3c9e28f83fd0c85...c44b9dc66f8e5cf2851067a5266aea6d3325ffef)
### [`v0.22.5`](https://togithub.com/drizzle-team/drizzle-orm/compare/c312bb7a11c21171d51f94539260130211d57792...f389ebdf7d98d7379991601bc3c9e28f83fd0c85)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/c312bb7a11c21171d51f94539260130211d57792...f389ebdf7d98d7379991601bc3c9e28f83fd0c85)
### [`v0.22.4`](https://togithub.com/drizzle-team/drizzle-orm/compare/0f433ae97e28d862b12d0a7daba7c0b0eb58f8d7...c312bb7a11c21171d51f94539260130211d57792)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0f433ae97e28d862b12d0a7daba7c0b0eb58f8d7...c312bb7a11c21171d51f94539260130211d57792)
### [`v0.22.3`](https://togithub.com/drizzle-team/drizzle-orm/compare/c0b07b840f515eac92f5aaeecf744824fd35348c...0f433ae97e28d862b12d0a7daba7c0b0eb58f8d7)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/c0b07b840f515eac92f5aaeecf744824fd35348c...0f433ae97e28d862b12d0a7daba7c0b0eb58f8d7)
### [`v0.22.2`](https://togithub.com/drizzle-team/drizzle-orm/compare/3ba7ffdb3be897bbc325bfa9ae1b2a6cbf4a51ee...c0b07b840f515eac92f5aaeecf744824fd35348c)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/3ba7ffdb3be897bbc325bfa9ae1b2a6cbf4a51ee...c0b07b840f515eac92f5aaeecf744824fd35348c)
### [`v0.22.1`](https://togithub.com/drizzle-team/drizzle-orm/compare/0.22.0...3ba7ffdb3be897bbc325bfa9ae1b2a6cbf4a51ee)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0.22.0...3ba7ffdb3be897bbc325bfa9ae1b2a6cbf4a51ee)
### [`v0.22.0`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.22.0)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0d156e4abc51d7cb65d2087496f3cf9a08f08682...0.22.0)
- 🎉 Introduced a standalone query builder that can be used without a DB connection:
```ts
import { queryBuilder as qb } from 'drizzle-orm/pg-core';
const query = qb.select().from(users).where(eq(users.name, 'Dan'));
const { sql, params } = query.toSQL();
```
- 🎉 Improved `WITH ... SELECT` subquery creation syntax to more resemble SQL:
**Before**:
```ts
const regionalSales = db
.select({
region: orders.region,
totalSales: sql`sum(${orders.amount})`.as('total_sales'),
})
.from(orders)
.groupBy(orders.region)
.prepareWithSubquery('regional_sales');
await db.with(regionalSales).select(...).from(...);
```
**After**:
```ts
const regionalSales = db
.$with('regional_sales')
.as(
db
.select({
region: orders.region,
totalSales: sql`sum(${orders.amount})`.as('total_sales'),
})
.from(orders)
.groupBy(orders.region),
);
await db.with(regionalSales).select(...).from(...);
```
### [`v0.21.4`](https://togithub.com/drizzle-team/drizzle-orm/compare/99d3d12d06ebee9a64e9383471acb7905adb8b45...0d156e4abc51d7cb65d2087496f3cf9a08f08682)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/99d3d12d06ebee9a64e9383471acb7905adb8b45...0d156e4abc51d7cb65d2087496f3cf9a08f08682)
### [`v0.21.3`](https://togithub.com/drizzle-team/drizzle-orm/compare/28cb4dfda10b15d73230f04ffae2803c86fe6b1e...99d3d12d06ebee9a64e9383471acb7905adb8b45)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/28cb4dfda10b15d73230f04ffae2803c86fe6b1e...99d3d12d06ebee9a64e9383471acb7905adb8b45)
### [`v0.21.2`](https://togithub.com/drizzle-team/drizzle-orm/compare/0.21.1...28cb4dfda10b15d73230f04ffae2803c86fe6b1e)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0.21.1...28cb4dfda10b15d73230f04ffae2803c86fe6b1e)
### [`v0.21.1`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.21.1)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0.21.0...0.21.1)
- 🎉 Added support for `HAVING` clause
- 🎉 Added support for referencing selected fields in `.where()`, `.having()`, `.groupBy()` and `.orderBy()` using an optional callback:
```ts
await db
.select({
id: citiesTable.id,
name: sql`upper(${citiesTable.name})`.as('upper_name'),
usersCount: sql`count(${users2Table.id})::int`.as('users_count'),
})
.from(citiesTable)
.leftJoin(users2Table, eq(users2Table.cityId, citiesTable.id))
.where(({ name }) => sql`length(${name}) >= 3`)
.groupBy(citiesTable.id)
.having(({ usersCount }) => sql`${usersCount} > 0`)
.orderBy(({ name }) => name);
```
### [`v0.21.0`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.21.0)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/bbea26653ed37d1cfb391fdb041d584f94b401be...0.21.0)
#### Drizzle ORM 0.21.0 was released 🎉
- Added support for new migration folder structure and breakpoints feature, described in drizzle-kit release section
- Fix `onUpdateNow()` expression generation for default migration statement
##### Support for PostgreSQL array types
***
```ts
export const salEmp = pgTable('sal_emp', {
name: text('name').notNull(),
payByQuarter: integer('pay_by_quarter').array(),
schedule: text('schedule').array().array(),
});
export const tictactoe = pgTable('tictactoe', {
squares: integer('squares').array(3).array(3),
});
```
drizzle kit will generate
```sql
CREATE TABLE sal_emp (
name text,
pay_by_quarter integer[],
schedule text[][]
);
CREATE TABLE tictactoe (
squares integer[3][3]
);
```
##### Added composite primary key support to PostgreSQL and MySQL
***
PostgreSQL
```ts
import { primaryKey } from 'drizzle-orm/pg-core';
export const cpkTable = pgTable('table', {
column1: integer('column1').default(10).notNull(),
column2: integer('column2'),
column3: integer('column3'),
}, (table) => ({
cpk: primaryKey(table.column1, table.column2),
}));
```
MySQL
```ts
import { primaryKey } from 'drizzle-orm/mysql-core';
export const cpkTable = mysqlTable('table', {
simple: int('simple'),
columnNotNull: int('column_not_null').notNull(),
columnDefault: int('column_default').default(100),
}, (table) => ({
cpk: primaryKey(table.simple, table.columnDefault),
}));
```
***
#### Drizzle Kit 0.17.0 was released 🎉
#### Breaking changes
##### Folder structure was migrated to newer version
Before running any new migrations `drizzle-kit` will ask you to upgrade in a first place
Migration file structure < 0.17.0
```plaintext
📦
└ 📂 migrations
└ 📂 20221207174503
├ 📜 migration.sql
├ 📜 snapshot.json
└ 📂 20230101104503
├ 📜 migration.sql
├ 📜 snapshot.json
```
Migration file structure >= 0.17.0
```plaintext
📦
└ 📂 migrations
└ 📂 meta
├ 📜 _journal.json
├ 📜 0000_snapshot.json
├ 📜 0001_snapshot.json
└ 📜 0000_icy_stranger.sql
└ 📜 0001_strange_avengers.sql
```
#### Upgrading to 0.17.0
***
![](/changelogs/media/up_mysql.gif)
To easily migrate from previous folder structure to new you need to run `up` command in drizzle kit. It's a great helper to upgrade your migrations to new format on each drizzle kit major update
```bash
drizzle-kit up: # dialects: `pg`, `mysql`, `sqlite`
### example for pg
drizzle-kit up:pg
```
#### New Features
##### New `drizzle-kit` command called `drop`
In a case you think some of migrations were generated in a wrong way or you have made migration simultaneously with other developers you can easily rollback it by running simple command
> **Warning**:
> Make sure you are dropping migrations that were not applied to your database
```bash
drizzle-kit drop
```
This command will show you a list of all migrations you have and you'll need just to choose migration you want to drop. After that `drizzle-kit` will do all the hard work on deleting migration files
![](/changelogs/media/drop.gif)
##### New `drizzle-kit` option `--breakpoints` for `generate` and `introspect` commands
If particular driver doesn't support running multiple quries in 1 execution you can use `--breakpoints`.
`drizzle-kit` will generate current sql
```sql
CREATE TABLE `users` (
`id` int PRIMARY KEY NOT NULL,
`full_name` text NOT NULL,
);
--> statement-breakpoint
CREATE TABLE `table` (
`id` int PRIMARY KEY NOT NULL,
`phone` int,
);
```
Using it `drizzle-orm` will split all sql files by statements and execute them separately
##### Add `drizzle-kit introspect` for MySQL dialect
You can introspect your mysql database using `introspect:mysql` command
```bash
drizzle-kit introspect:mysql --out ./migrations --connectionString mysql://user:password@127.0.0.1:3306/database
```
![](/changelogs/media/introspect_mysql.gif)
##### Support for glob patterns for schema path
Usage example in `cli`
```bash
drizzle-kit generate:pg --out ./migrations --schema ./core/**/*.ts ./database/schema.ts
```
Usage example in `drizzle.config`
```text
{
"out: "./migrations",
"schema": ["./core/**/*.ts", "./database/schema.ts"]
}
```
#### Bug Fixes and improvements
##### Postgres dialect
***
**GitHub issue fixes**
- \[pg] char is undefined during introspection [#9](https://togithub.com/drizzle-team/drizzle-kit-mirror/issues/9)
- when unknown type is detected, would be nice to emit a TODO comment instead of undefined [#8](https://togithub.com/drizzle-team/drizzle-kit-mirror/issues/8)
- "post_id" integer DEFAULT currval('posts_id_seq'::regclass) generates invalid TS [#7](https://togithub.com/drizzle-team/drizzle-kit-mirror/issues/7)
- "ip" INET NOT NULL is not supported [#6](https://togithub.com/drizzle-team/drizzle-kit-mirror/issues/6)
- "id" UUID NOT NULL DEFAULT uuid_generate_v4() type is not supported [#5](https://togithub.com/drizzle-team/drizzle-kit-mirror/issues/5)
- array fields end up as "undefined" in the schema [#4](https://togithub.com/drizzle-team/drizzle-kit-mirror/issues/4)
- timestamp is not in the import statement in schema.ts [#3](https://togithub.com/drizzle-team/drizzle-kit-mirror/issues/3)
- generated enums are not camel cased [#2](https://togithub.com/drizzle-team/drizzle-kit-mirror/issues/2)
**Introspect improvements**
- Add support for composite PK's generation;
- Add support for `cidr`, `inet`, `macaddr`, `macaddr8`, `smallserial`
- Add interval fields generation in schema, such as `minute to second`, `day to hour`, etc.
- Add default values for `numerics`
- Add default values for `enums`
##### MySQL dialect
***
**Migration generation improvements**
- Add `autoincrement` create, delete and update handling
- Add `on update current_timestamp` handling for timestamps
- Add data type changing, using `modify`
- Add `not null` changing, using `modify`
- Add `default` drop and create statements
- Fix `defaults` generation bugs, such as escaping, date strings, expressions, etc
**Introspect improvements**
- Add `autoincrement` to all supported types
- Add `fsp` for time based data types
- Add precision and scale for `double`
- Make time `{ mode: "string" }` by default
- Add defaults to `json`, `decimal` and `binary` datatypes
- Add `enum` data type generation
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
^0.20.16
->^0.24.0
Release Notes
drizzle-team/drizzle-orm (drizzle-kit)
### [`v0.24.0`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.24.0) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/drizzle-kit@0.23.2...drizzle-kit@0.24.0) - 🎉 Added iterator support to `mysql2` (sponsored by [@rizen](https://togithub.com/rizen) ❤). Read more in the [docs](https://togithub.com/drizzle-team/drizzle-orm/blob/main/drizzle-orm/src/mysql-core/README.md#querying-large-datasets) - ❗ `.prepare()` in MySQL no longer requires a name argument ### [`v0.23.2`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.23.2) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0.23.1...drizzle-kit@0.23.2) - 🐛 Rolled back some breaking changes for drizzle-kit ### [`v0.23.1`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.23.1) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0.23.0...0.23.1) - 🐛 Re-export `InferModel` from `drizzle-orm` ### [`v0.23.0`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.23.0) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/50f22b0282a6c7a115da4240fd63d9a3fa596526...0.23.0) - 🎉 Added Knex and Kysely adapters! They allow you to manage the schemas and migrations with Drizzle and query the data with your favorite query builder. See documentation for more details: - [Knex adapter](https://togithub.com/drizzle-team/drizzle-knex) - [Kysely adapter](https://togithub.com/drizzle-team/drizzle-kysely) - 🎉 Added "type maps" to all entities. You can access them via the special `_` property. For example: ```ts const users = mysqlTable('users', { id: int('id').primaryKey(), name: text('name').notNull(), }); type UserFields = typeof users['_']['columns']; type InsertUser = typeof users['_']['model']['insert']; ``` Full documentation on the type maps is coming soon. - 🎉 Added `.$type()` method to all column builders to allow overriding the data type. It also replaces the optional generics on columns. ```ts // Before const test = mysqlTable('test', { jsonField: json('json_field'), }); // After const test = mysqlTable('test', { jsonField: json('json_field').$type(), }); ``` - ❗ Changed syntax for text-based enum columns: ```ts // Before const test = mysqlTable('test', { role: text<'admin' | 'user'>('role'), }); // After const test = mysqlTable('test', { role: text('role', { enum: ['admin', 'user'] }), }); ``` - 🎉 Allowed passing an array of values into `.insert().values()` directly without spreading: ```ts const users = mysqlTable('users', { id: int('id').primaryKey(), name: text('name').notNull(), }); await users.insert().values([ { name: 'John' }, { name: 'Jane' }, ]); ``` The spread syntax is now deprecated and will be removed in one of the next releases. - 🎉 Added "table creators" to allow for table name customization: ```ts import { mysqlTableCreator } from 'drizzle-orm/mysql-core'; const mysqlTable = mysqlTableCreator((name) => `myprefix_${name}`); const users = mysqlTable('users', { id: int('id').primaryKey(), name: text('name').notNull(), }); // Users table is a normal table, but its name is `myprefix_users` in runtime ``` - 🎉 Implemented support for selecting/joining raw SQL expressions: ```ts // select current_date + s.a as dates from generate_series(0,14,7) as s(a); const result = await db .select({ dates: sql`current_date + s.a`, }) .from(sql`generate_series(0,14,7) as s(a)`); ``` - 🐛 Fixed a lot of bugs from user feedback on GitHub and Discord (thank you! ❤). Fixes [#293](https://togithub.com/drizzle-team/drizzle-orm/issues/293) [#301](https://togithub.com/drizzle-team/drizzle-orm/issues/301) [#276](https://togithub.com/drizzle-team/drizzle-orm/issues/276) [#269](https://togithub.com/drizzle-team/drizzle-orm/issues/269) [#253](https://togithub.com/drizzle-team/drizzle-orm/issues/253) [#311](https://togithub.com/drizzle-team/drizzle-orm/issues/311) [#312](https://togithub.com/drizzle-team/drizzle-orm/issues/312) ### [`v0.22.8`](https://togithub.com/drizzle-team/drizzle-orm/compare/db013f5eb7bfb7098bb443493640c79ad0eb8259...50f22b0282a6c7a115da4240fd63d9a3fa596526) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/db013f5eb7bfb7098bb443493640c79ad0eb8259...50f22b0282a6c7a115da4240fd63d9a3fa596526) ### [`v0.22.7`](https://togithub.com/drizzle-team/drizzle-orm/compare/c44b9dc66f8e5cf2851067a5266aea6d3325ffef...db013f5eb7bfb7098bb443493640c79ad0eb8259) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/c44b9dc66f8e5cf2851067a5266aea6d3325ffef...db013f5eb7bfb7098bb443493640c79ad0eb8259) ### [`v0.22.6`](https://togithub.com/drizzle-team/drizzle-orm/compare/f389ebdf7d98d7379991601bc3c9e28f83fd0c85...c44b9dc66f8e5cf2851067a5266aea6d3325ffef) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/f389ebdf7d98d7379991601bc3c9e28f83fd0c85...c44b9dc66f8e5cf2851067a5266aea6d3325ffef) ### [`v0.22.5`](https://togithub.com/drizzle-team/drizzle-orm/compare/c312bb7a11c21171d51f94539260130211d57792...f389ebdf7d98d7379991601bc3c9e28f83fd0c85) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/c312bb7a11c21171d51f94539260130211d57792...f389ebdf7d98d7379991601bc3c9e28f83fd0c85) ### [`v0.22.4`](https://togithub.com/drizzle-team/drizzle-orm/compare/0f433ae97e28d862b12d0a7daba7c0b0eb58f8d7...c312bb7a11c21171d51f94539260130211d57792) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0f433ae97e28d862b12d0a7daba7c0b0eb58f8d7...c312bb7a11c21171d51f94539260130211d57792) ### [`v0.22.3`](https://togithub.com/drizzle-team/drizzle-orm/compare/c0b07b840f515eac92f5aaeecf744824fd35348c...0f433ae97e28d862b12d0a7daba7c0b0eb58f8d7) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/c0b07b840f515eac92f5aaeecf744824fd35348c...0f433ae97e28d862b12d0a7daba7c0b0eb58f8d7) ### [`v0.22.2`](https://togithub.com/drizzle-team/drizzle-orm/compare/3ba7ffdb3be897bbc325bfa9ae1b2a6cbf4a51ee...c0b07b840f515eac92f5aaeecf744824fd35348c) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/3ba7ffdb3be897bbc325bfa9ae1b2a6cbf4a51ee...c0b07b840f515eac92f5aaeecf744824fd35348c) ### [`v0.22.1`](https://togithub.com/drizzle-team/drizzle-orm/compare/0.22.0...3ba7ffdb3be897bbc325bfa9ae1b2a6cbf4a51ee) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0.22.0...3ba7ffdb3be897bbc325bfa9ae1b2a6cbf4a51ee) ### [`v0.22.0`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.22.0) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0d156e4abc51d7cb65d2087496f3cf9a08f08682...0.22.0) - 🎉 Introduced a standalone query builder that can be used without a DB connection: ```ts import { queryBuilder as qb } from 'drizzle-orm/pg-core'; const query = qb.select().from(users).where(eq(users.name, 'Dan')); const { sql, params } = query.toSQL(); ``` - 🎉 Improved `WITH ... SELECT` subquery creation syntax to more resemble SQL: **Before**: ```ts const regionalSales = db .select({ region: orders.region, totalSales: sql`sum(${orders.amount})`.asConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.