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
24.53k stars 643 forks source link

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

Open aliy321 opened 6 months ago

aliy321 commented 6 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 6 months ago

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

mrwokkel commented 2 months ago

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

evanlong0803 commented 2 months 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 2 months ago

Same error!

tinsever commented 2 months 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 2 months ago

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

chocokrizpis commented 2 months ago

I am experiencing the same error.

vladisavage commented 2 months ago

Same error, please reopen!

vincent-thomas commented 2 months ago

Same problem!

G4den commented 1 month 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)