Skip to content

Commit 90c4788

Browse files
Merge pull request drizzle-team#2822 from drizzle-team/beta
Beta
2 parents 6adbd78 + f7ddd08 commit 90c4788

File tree

16 files changed

+879
-517
lines changed

16 files changed

+879
-517
lines changed

changelogs/drizzle-kit/0.24.1.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
## Bug fixes
2+
3+
> Big thanks to @L-Mario564 for his [PR](https://github.com/drizzle-team/drizzle-orm/pull/2804). It conflicted in most cases with a PR that was merged, but we incorporated some of his logic. Merging it would have caused more problems and taken more time to resolve, so we just took a few things from his PR, like removing "::<type>" mappings in introspect and some array type default handlers
4+
5+
### What was fixed
6+
7+
1. The Drizzle Kit CLI was not working properly for the `introspect` command.
8+
2. Added the ability to use column names with special characters for all dialects.
9+
3. Included PostgreSQL sequences in the introspection process.
10+
4. Reworked array type introspection and added all test cases.
11+
5. Fixed all (we hope) default issues in PostgreSQL, where `::<type>` was included in the introspected output.
12+
6. `preserve` casing option was broken
13+
14+
### Tickets that were closed
15+
16+
- [[BUG]: invalid schema generation with drizzle-kit introspect:pg](https://github.com/drizzle-team/drizzle-orm/issues/1210)
17+
- [[BUG][mysql introspection]: TS error when introspect column including colon](https://github.com/drizzle-team/drizzle-orm/issues/1928)
18+
- [[BUG]: Unhandled defaults when introspecting postgres db](https://github.com/drizzle-team/drizzle-orm/issues/1625)
19+
- [[BUG]: PostgreSQL Enum Naming and Schema Typing Issue](https://github.com/drizzle-team/drizzle-orm/issues/2315)
20+
- [[BUG]: drizzle-kit instrospect command generates syntax error on varchar column types](https://github.com/drizzle-team/drizzle-orm/issues/2714)
21+
- [[BUG]: Introspecting varchar[] type produces syntactically invalid schema.ts](https://github.com/drizzle-team/drizzle-orm/issues/1633)
22+
- [[BUG]: introspect:pg column not using generated enum name](https://github.com/drizzle-team/drizzle-orm/issues/1648)
23+
- [[BUG]: drizzle-kit introspect casing "preserve" config not working](https://github.com/drizzle-team/drizzle-orm/issues/2773)
24+
- [[BUG]: drizzle-kit introspect fails on required param that is defined](https://github.com/drizzle-team/drizzle-orm/issues/2719)
25+
- [[BUG]: Error when running npx drizzle-kit introspect: "Expected object, received string"](https://github.com/drizzle-team/drizzle-orm/issues/2657)
26+
- [[BUG]: Missing index names when running introspect command [MYSQL]](https://github.com/drizzle-team/drizzle-orm/issues/2525)
27+
- [[BUG]: drizzle-kit introspect TypeError: Cannot read properties of undefined (reading 'toLowerCase')](https://github.com/drizzle-team/drizzle-orm/issues/2338)
28+
- [[BUG]: Wrong column name when using PgEnum.array()](https://github.com/drizzle-team/drizzle-orm/issues/2100)
29+
- [[BUG]: Incorrect Schema Generated when introspecting extisting pg database](https://github.com/drizzle-team/drizzle-orm/issues/1985)
30+
- [[⚠️🐞BUG]: index() missing argument after introspection, causes tsc error that fails the build](https://github.com/drizzle-team/drizzle-orm/issues/1870)
31+
- [[BUG]: drizzle-kit introspect small errors](https://github.com/drizzle-team/drizzle-orm/issues/1738)
32+
- [[BUG]: Missing bigint import in drizzle-kit introspect](https://github.com/drizzle-team/drizzle-orm/issues/1020)

drizzle-kit/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "drizzle-kit",
3-
"version": "0.24.0",
3+
"version": "0.24.1",
44
"homepage": "https://orm.drizzle.team",
55
"keywords": [
66
"drizzle",
@@ -42,7 +42,7 @@
4242
"publish": "npm publish package.tgz"
4343
},
4444
"dependencies": {
45-
"@drizzle-team/brocli": "^0.8.2",
45+
"@drizzle-team/brocli": "^0.10.1",
4646
"@esbuild-kit/esm-loader": "^2.5.5",
4747
"esbuild": "^0.19.7",
4848
"esbuild-register": "^3.5.0"
@@ -92,7 +92,7 @@
9292
"hono": "^4.1.5",
9393
"json-diff": "1.0.6",
9494
"minimatch": "^7.4.3",
95-
"mysql2": "2.3.3",
95+
"mysql2": "3.3.3",
9696
"node-fetch": "^3.3.2",
9797
"pg": "^8.11.5",
9898
"pluralize": "^8.0.0",

drizzle-kit/src/cli/commands/utils.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -408,11 +408,11 @@ export const preparePullConfig = async (
408408
dialect: 'postgresql',
409409
out: config.out,
410410
breakpoints: config.breakpoints,
411-
casing: config.introspectCasing,
411+
casing: config.casing,
412412
credentials: parsed.data,
413413
tablesFilter,
414414
schemasFilter,
415-
prefix: config.database?.prefix || 'index',
415+
prefix: config.migrations?.prefix || 'index',
416416
};
417417
}
418418

@@ -426,11 +426,11 @@ export const preparePullConfig = async (
426426
dialect: 'mysql',
427427
out: config.out,
428428
breakpoints: config.breakpoints,
429-
casing: config.introspectCasing,
429+
casing: config.casing,
430430
credentials: parsed.data,
431431
tablesFilter,
432432
schemasFilter,
433-
prefix: config.database?.prefix || 'index',
433+
prefix: config.migrations?.prefix || 'index',
434434
};
435435
}
436436

@@ -444,11 +444,11 @@ export const preparePullConfig = async (
444444
dialect: 'sqlite',
445445
out: config.out,
446446
breakpoints: config.breakpoints,
447-
casing: config.introspectCasing,
447+
casing: config.casing,
448448
credentials: parsed.data,
449449
tablesFilter,
450450
schemasFilter,
451-
prefix: config.database?.prefix || 'index',
451+
prefix: config.migrations?.prefix || 'index',
452452
};
453453
}
454454

drizzle-kit/src/cli/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,6 @@ const legacy = [
4343
];
4444

4545
run([generate, migrate, pull, push, studio, up, check, drop, ...legacy], {
46+
name: 'drizzle-kit',
4647
version: version,
4748
});

drizzle-kit/src/cli/validations/cli.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ export const pullParams = object({
3838
.optional()
3939
.default(['public']),
4040
extensionsFilters: literal('postgis').array().optional(),
41-
introspectCasing: casing,
41+
casing,
4242
breakpoints: boolean().optional().default(true),
43-
database: object({
43+
migrations: object({
4444
prefix: prefix.optional().default('index'),
4545
}).optional(),
4646
}).passthrough();

drizzle-kit/src/introspect-mysql.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,15 +101,22 @@ const importsPatch = {
101101

102102
const relations = new Set<string>();
103103

104+
const escapeColumnKey = (value: string) => {
105+
if (/^(?![a-zA-Z_$][a-zA-Z0-9_$]*$).+$/.test(value)) {
106+
return `"${value}"`;
107+
}
108+
return value;
109+
};
110+
104111
const prepareCasing = (casing?: Casing) => (value: string) => {
105-
if (typeof casing === 'undefined') {
106-
return value;
112+
if (casing === 'preserve') {
113+
return escapeColumnKey(value);
107114
}
108115
if (casing === 'camel') {
109-
return value.camelCase();
116+
return escapeColumnKey(value.camelCase());
110117
}
111118

112-
return value;
119+
return escapeColumnKey(value);
113120
};
114121

115122
export const schemaToTypeScript = (

0 commit comments

Comments
 (0)