Skip to content

Commit 866c257

Browse files
Merge pull request #3750 from drizzle-team/beta
Beta
2 parents c18f224 + d379dcf commit 866c257

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+4221
-702
lines changed

changelogs/drizzle-orm/0.38.1.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Closed [[FEATURE]: Add more flexible typing for usage with exactOptionalPropertyTypes](https://github.com/drizzle-team/drizzle-orm/issues/2742)

changelogs/drizzle-seed/0.1.3.md

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
## Bug fixes
2+
3+
- https://github.com/drizzle-team/drizzle-orm/issues/3644
4+
- seeding a table with columns that have .default(sql``) will result in an error
5+
6+
## Features
7+
8+
- added support for postgres uuid columns
9+
10+
Example
11+
12+
```ts
13+
import { pgTable, uuid } from "drizzle-orm/pg-core";
14+
import { drizzle } from "drizzle-orm/node-postgres";
15+
import { seed } from "drizzle-seed";
16+
17+
const users = pgTable("users", {
18+
uuid: uuid("uuid"),
19+
});
20+
21+
async function main() {
22+
const db = drizzle(process.env.DATABASE_URL!);
23+
// You can let it seed automatically
24+
// await seed(db, { users });
25+
26+
// Alternatively, you can manually specify the generator in refine.
27+
await seed(db, { users }, { count: 1000 }).refine((funcs) => ({
28+
users: {
29+
columns: {
30+
uuid: funcs.uuid(),
31+
},
32+
},
33+
}));
34+
}
35+
36+
main();
37+
```
38+
39+
##
40+
41+
- added support for postgres array columns
42+
43+
Example
44+
45+
```ts
46+
import { pgTable, integer, text, varchar } from "drizzle-orm/pg-core";
47+
import { drizzle } from "drizzle-orm/node-postgres";
48+
import { seed } from "drizzle-seed";
49+
50+
const users = pgTable("users", {
51+
id: integer().primaryKey(),
52+
name: text().notNull(),
53+
phone_numbers: varchar({ length: 256 }).array(),
54+
});
55+
```
56+
57+
You can specify the `arraySize` parameter in generator options, like `funcs.phoneNumber({ arraySize: 3 })`, to generate 1D arrays.
58+
59+
```ts
60+
async function main() {
61+
const db = drizzle(process.env.DATABASE_URL!);
62+
await seed(db, { users }, { count: 1000 }).refine((funcs) => ({
63+
users: {
64+
columns: {
65+
phone_numbers: funcs.phoneNumber({ arraySize: 3 }),
66+
},
67+
},
68+
}));
69+
}
70+
71+
main();
72+
```
73+
74+
Alternatively, you can let it seed automatically, and it will handle arrays of any dimension.
75+
76+
```ts
77+
async function main() {
78+
const db = drizzle(process.env.DATABASE_URL!);
79+
await seed(db, { users });
80+
}
81+
82+
main();
83+
```
84+
85+
##
86+
87+
- added support for cyclic tables
88+
89+
You can now seed tables with cyclic relations.
90+
91+
```ts
92+
import type { AnyPgColumn } from "drizzle-orm/pg-core";
93+
import {
94+
foreignKey,
95+
integer,
96+
pgTable,
97+
serial,
98+
varchar,
99+
} from "drizzle-orm/pg-core";
100+
101+
export const modelTable = pgTable(
102+
"model",
103+
{
104+
id: serial().primaryKey(),
105+
name: varchar().notNull(),
106+
defaultImageId: integer(),
107+
},
108+
(t) => [
109+
foreignKey({
110+
columns: [t.defaultImageId],
111+
foreignColumns: [modelImageTable.id],
112+
}),
113+
]
114+
);
115+
116+
export const modelImageTable = pgTable("model_image", {
117+
id: serial().primaryKey(),
118+
url: varchar().notNull(),
119+
caption: varchar(),
120+
modelId: integer()
121+
.notNull()
122+
.references((): AnyPgColumn => modelTable.id),
123+
});
124+
125+
async function main() {
126+
const db = drizzle(process.env.DATABASE_URL!);
127+
await seed(db, { modelTable, modelImageTable });
128+
}
129+
130+
main();
131+
```

drizzle-orm/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "drizzle-orm",
3-
"version": "0.38.0",
3+
"version": "0.38.1",
44
"description": "Drizzle ORM package for SQL databases",
55
"type": "module",
66
"scripts": {

drizzle-orm/src/mysql-core/query-builders/update.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ export type MySqlUpdateSetSource<TTable extends MySqlTable> =
3434
& {
3535
[Key in keyof TTable['$inferInsert']]?:
3636
| GetColumnData<TTable['_']['columns'][Key], 'query'>
37-
| SQL;
37+
| SQL
38+
| undefined;
3839
}
3940
& {};
4041

drizzle-orm/src/pg-core/query-builders/update.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ export type PgUpdateSetSource<TTable extends PgTable> =
5353
[Key in keyof TTable['$inferInsert']]?:
5454
| GetColumnData<TTable['_']['columns'][Key]>
5555
| SQL
56-
| PgColumn;
56+
| PgColumn
57+
| undefined;
5758
}
5859
& {};
5960

drizzle-orm/src/relations.ts

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -214,22 +214,27 @@ export type DBQueryConfig<
214214
TTableConfig extends TableRelationalConfig = TableRelationalConfig,
215215
> =
216216
& {
217-
columns?: {
218-
[K in keyof TTableConfig['columns']]?: boolean;
219-
};
220-
with?: {
221-
[K in keyof TTableConfig['relations']]?:
222-
| true
223-
| DBQueryConfig<
224-
TTableConfig['relations'][K] extends One ? 'one' : 'many',
225-
false,
226-
TSchema,
227-
FindTableByDBName<
217+
columns?:
218+
| {
219+
[K in keyof TTableConfig['columns']]?: boolean;
220+
}
221+
| undefined;
222+
with?:
223+
| {
224+
[K in keyof TTableConfig['relations']]?:
225+
| true
226+
| DBQueryConfig<
227+
TTableConfig['relations'][K] extends One ? 'one' : 'many',
228+
false,
228229
TSchema,
229-
TTableConfig['relations'][K]['referencedTableName']
230+
FindTableByDBName<
231+
TSchema,
232+
TTableConfig['relations'][K]['referencedTableName']
233+
>
230234
>
231-
>;
232-
};
235+
| undefined;
236+
}
237+
| undefined;
233238
extras?:
234239
| Record<string, SQL.Aliased>
235240
| ((
@@ -238,7 +243,8 @@ export type DBQueryConfig<
238243
: TTableConfig['columns']
239244
>,
240245
operators: { sql: Operators['sql'] },
241-
) => Record<string, SQL.Aliased>);
246+
) => Record<string, SQL.Aliased>)
247+
| undefined;
242248
}
243249
& (TRelationType extends 'many' ?
244250
& {
@@ -260,11 +266,12 @@ export type DBQueryConfig<
260266
: TTableConfig['columns']
261267
>,
262268
operators: OrderByOperators,
263-
) => ValueOrArray<AnyColumn | SQL>);
264-
limit?: number | Placeholder;
269+
) => ValueOrArray<AnyColumn | SQL>)
270+
| undefined;
271+
limit?: number | Placeholder | undefined;
265272
}
266273
& (TIsRoot extends true ? {
267-
offset?: number | Placeholder;
274+
offset?: number | Placeholder | undefined;
268275
}
269276
: {})
270277
: {});

drizzle-orm/src/singlestore-core/query-builders/update.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ export type SingleStoreUpdateSetSource<TTable extends SingleStoreTable> =
3434
& {
3535
[Key in keyof TTable['$inferInsert']]?:
3636
| GetColumnData<TTable['_']['columns'][Key], 'query'>
37-
| SQL;
37+
| SQL
38+
| undefined;
3839
}
3940
& {};
4041

drizzle-orm/src/sqlite-core/query-builders/update.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ export type SQLiteUpdateSetSource<TTable extends SQLiteTable> =
4040
[Key in keyof TTable['$inferInsert']]?:
4141
| GetColumnData<TTable['_']['columns'][Key], 'query'>
4242
| SQL
43-
| SQLiteColumn;
43+
| SQLiteColumn
44+
| undefined;
4445
}
4546
& {};
4647

drizzle-orm/src/table.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ export type InferModelFromColumns<
174174
TColumns[Key],
175175
TConfig['override']
176176
>
177-
]?: GetColumnData<TColumns[Key], 'query'>;
177+
]?: GetColumnData<TColumns[Key], 'query'> | undefined;
178178
}
179179
: {
180180
[

drizzle-seed/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
22
"name": "drizzle-seed",
3-
"version": "0.1.2",
3+
"version": "0.1.3",
44
"main": "index.js",
55
"type": "module",
66
"scripts": {
77
"build": "tsx scripts/build.ts",
88
"pack": "(cd dist && npm pack --pack-destination ..) && rm -f package.tgz && mv *.tgz package.tgz",
9-
"test": "vitest --config ./src/tests/vitest.config.ts",
10-
"test:types": "cd src/type-tests && tsc",
9+
"test": "vitest --config ./vitest.config.ts",
10+
"test:types": "cd type-tests && tsc",
1111
"generate-for-tests:pg": "drizzle-kit generate --config=./src/tests/pg/drizzle.config.ts",
1212
"generate-for-tests:mysql": "drizzle-kit generate --config=./src/tests/mysql/drizzle.config.ts",
1313
"generate-for-tests:sqlite": "drizzle-kit generate --config=./src/tests/sqlite/drizzle.config.ts",

0 commit comments

Comments
 (0)