TypeError: columnType.startsWith is not a function

I am using PlanetScale and am interested in using npx drizzle-kit push to prototype my schema. I am using the latest "drizzle-orm": "^0.29.4" and "drizzle-kit": "^0.21.2". I completely cleared my database and ran npx drizzle-kit push with no problem. However on subsequent calls (without changing anything), I consistently run into this error
>npx drizzle-kit push
drizzle-kit: v0.21.2
drizzle-orm: v0.30.10

No config path provided, using default path
Reading config file 'C:\Users\sarah\Documents\GitHub\salesbop\drizzle.config.ts'
Warning: You need to pass an instance of Client:

import { Client } from "@planetscale/database";

const client = new Client({
host: process.env["DATABASE_HOST"],
username: process.env["DATABASE_USERNAME"],
password: process.env["DATABASE_PASSWORD"],
});

const db = drizzle(client);

Starting from version 0.30.0, you will encounter an error if you attempt to use anything other than a Client instance.
Please make the necessary changes now to prevent any runtime errors in the future

TypeError: columnType.startsWith is not a function
at fromDatabase (\node_modules\drizzle-kit\bin.cjs:15217:24)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async mysqlPushIntrospect (\node_modules\drizzle-kit\bin.cjs:106130:19)
at async mysqlPush (\node_modules\drizzle-kit\bin.cjs:106560:35)
at async Command.<anonymous> (\node_modules\drizzle-kit\bin.cjs:113617:7)
>npx drizzle-kit push
drizzle-kit: v0.21.2
drizzle-orm: v0.30.10

No config path provided, using default path
Reading config file 'C:\Users\sarah\Documents\GitHub\salesbop\drizzle.config.ts'
Warning: You need to pass an instance of Client:

import { Client } from "@planetscale/database";

const client = new Client({
host: process.env["DATABASE_HOST"],
username: process.env["DATABASE_USERNAME"],
password: process.env["DATABASE_PASSWORD"],
});

const db = drizzle(client);

Starting from version 0.30.0, you will encounter an error if you attempt to use anything other than a Client instance.
Please make the necessary changes now to prevent any runtime errors in the future

TypeError: columnType.startsWith is not a function
at fromDatabase (\node_modules\drizzle-kit\bin.cjs:15217:24)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async mysqlPushIntrospect (\node_modules\drizzle-kit\bin.cjs:106130:19)
at async mysqlPush (\node_modules\drizzle-kit\bin.cjs:106560:35)
at async Command.<anonymous> (\node_modules\drizzle-kit\bin.cjs:113617:7)
There seems to be a type error that occurs during Introspection. PS. I am passing an instance of the planetscale Client, so I am also confused as to why I am getting this warning. Any support would be greatly appreciated! Thank you!
2 Replies
elverly
elverly3mo ago
I was able to fix it by switching to "drizzle-kit": "^0.21.1, then, I encountered the error in which it was trying to drop all the primary keys and readd them, so I used this fix https://github.com/drizzle-team/drizzle-orm/issues/1428#issuecomment-1916722940, and that worked
GitHub
[BUG]: ER_WRONG_AUTO_KEY - Drizzle Kit not detecting primary keys ·...
What version of drizzle-orm are you using? 0.28.6 What version of drizzle-kit are you using? 0.19.13 Describe the Bug Drizzle-kit isn't introspecting the correct primary keys from planet scale....
elverly
elverly3mo ago
I still can't use .unique though without running into issues. I will make a seperate thread for that though: https://discordapp.com/channels/1043890932593987624/1240321768825294988