drizzle-team / drizzle-orm

Headless TypeScript ORM with a head. Runs on Node, Bun and Deno. Lives on the Edge and yes, it's a JavaScript ORM too 😅
https://orm.drizzle.team
Apache License 2.0
23.56k stars 579 forks source link

[BUG]: TypeError: Cannot read properties of undefined (reading 'primaryKey') #2324

Open aliy321 opened 4 months ago

aliy321 commented 4 months ago

What version of drizzle-orm are you using?

^0.30.10

What version of drizzle-kit are you using?

^0.21.2

Describe the Bug

There's an issue when i try to run npx drizzle-kit push, keep getting

TypeError: Cannot read properties of undefined (reading 'primaryKey')
    at logSuggestionsAndReturn2

base on this discord post: https://discord.com/channels/1043890932593987624/1151920448049782915/1240052746770710578

Was able to temporarily fix it by monkey patching the bin.cjs file referenced in the error, simply by adding optional chaining like so
Image
You guys should probably consider adding  "noUncheckedIndexedAccess": true, to Drizzle-kit tsconfig.json, 
otherwise these kinds of errors will always keep popping up

Expected behavior

dotenv drizzle-kit push

drizzle-kit: v0.21.2 drizzle-orm: v0.30.10

Warning You are about to execute current statements:

ALTER TABLE posts DROP COLUMN image;

[✓] Changes applied

Environment & setup

No response

AndriiSherman commented 4 months ago

This should be fixed in drizzle-kit@0.21.3. If the issue persists, feel free to reopen it!

mrwokkel commented 1 month ago

I am having the same issue: drizzle-kit 0.24.2 drizzle-orm 0.33.0

evanlong0803 commented 1 month ago

Hi, @AndriiSherman

When I executed pnpm db:push, it prompted me:

TypeError: Cannot read properties of undefined (reading 'primaryKey')

But in fact, I just deleted a field. I deleted the embedding field.

export const products = sqliteTable('products', {
  id: text('id')
    .$default(() => createId())
    .primaryKey(),
  ...
  embedding: blob('embedding', { mode: 'buffer' }),
  ...
})

drizzle-kit -> 0.24.2 drizzle-orm -> 0.33.0

tinsever commented 1 month ago

Same error!

tinsever commented 1 month ago

Hi, @AndriiSherman

When I executed pnpm db:push, it prompted me:

TypeError: Cannot read properties of undefined (reading 'primaryKey')

But in fact, I just deleted a field. I deleted the embedding field.

export const products = sqliteTable('products', {
  id: text('id')
    .$default(() => createId())
    .primaryKey(),
  ...
  embedding: blob('embedding', { mode: 'buffer' }),
  ...
})

drizzle-kit -> 0.24.2 drizzle-orm -> 0.33.0

Hi, @evanlong0803

I removed the column inside my SQLite using SQLiteStudio. Then I pushed it again and it worked. I mean it's not ideal but yeah.

matannahmani commented 3 weeks ago

hey please don't close this, this is a huge problem.

chocokrizpis commented 3 weeks ago

I am experiencing the same error.

vladisavage commented 3 weeks ago

Same error, please reopen!

vincent-thomas commented 2 weeks ago

Same problem!

G4den commented 6 days ago

Having the same error I'm using turso

This is my setup:

import { type Config } from "drizzle-kit";
import { env } from "@repo/env";

export default {
  schema: "./schema.ts",
  dialect: "sqlite",
  driver: "turso",
  out: "./migrations",
  dbCredentials: {
    url: env.TURSO_CONNECTION_URL!,
    authToken: env.TURSO_AUTH_TOKEN!,
  },
  tablesFilter: ["flashcards_*"],
} satisfies Config;
 "dependencies": {
    "@libsql/client": "^0.14.0",
    "drizzle-orm": "^0.33.0"
  },
  "devDependencies": {
    "@types/bun": "latest",
    "drizzle-kit": "^0.24.2"
  },
@repo/db:db:push: TypeError: Cannot read properties of undefined (reading 'primaryKey')
@repo/db:db:push:     at logSuggestionsAndReturn2 (/Users/gaden/Documents/GitHub/project/node_modules/drizzle-kit/bin.cjs:72915:87)
@repo/db:db:push:     at sqlitePush (/Users/gaden/Documents/GitHub/project/node_modules/drizzle-kit/bin.cjs:74866:19)
@repo/db:db:push:     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
@repo/db:db:push:     at async Object.handler (/Users/gaden/Documents/GitHub/project/node_modules/drizzle-kit/bin.cjs:83724:9)
@repo/db:db:push:     at async run (/Users/gaden/Documents/GitHub/project/node_modules/drizzle-kit/bin.cjs:82064:7)