junkisai / web-app-template

1 stars 0 forks source link

chore(deps): update dependency drizzle-kit to ^0.24.0 #72

Closed renovate[bot] closed 2 weeks ago

renovate[bot] commented 4 months ago

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
drizzle-kit (source) ^0.20.16 -> ^0.24.0 age adoption passing confidence

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})`.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.



This PR was generated by Mend Renovate. View the repository job log.