WiseLibs / better-sqlite3

The fastest and simplest library for SQLite3 in Node.js.
MIT License
5.37k stars 394 forks source link

SqliteError: JSON cannot hold BLOB values #1025

Closed i6h closed 1 year ago

i6h commented 1 year ago

using drizzle-orm better-sqlite3

my schema

export const image = sqliteTable('images', {
    id: integer('image_id').primaryKey({autoIncrement:true}),
    carId: integer('car_id').notNull().references(() => car.id),
    name: text('image_name'),
    mimeType: text('mime_type'),
    lastModified: integer('last_modified'),
    size: integer('image_size'),
    data: blob('image_data', { mode: 'buffer' })
    }
);

db

export async function mergeCarImage(carid: number, image: File) {
    const arrayBuffer = await image.arrayBuffer();
    const buffer = Buffer.from(arrayBuffer);

    db.insert(schema.image)
    .values({
        carId: carid,
        name: image.name,
        mimeType: image.type,
        lastModified: image.lastModified,
        size:image.size,
        data:buffer,
    }).run();
}

full error

SqliteError: JSON cannot hold BLOB values
    at PreparedQuery.values (file:///C:/Users/Lion/Desktop/tajjer-Copy/Taajjer/node_modules/.pnpm/drizzle-orm@0.26.5_@types+better-sqlite3@7.6.4_better-sqlite3@8.4.0/node_modules/drizzle-orm/better-sqlite3/index.mjs:95:32)
    at PreparedQuery.all (file:///C:/Users/Lion/Desktop/tajjer-Copy/Taajjer/node_modules/.pnpm/drizzle-orm@0.26.5_@types+better-sqlite3@7.6.4_better-sqlite3@8.4.0/node_modules/drizzle-orm/better-sqlite3/index.mjs:70:27)
    at SyncRelationalQueryBuilder.findMany (file:///C:/Users/Lion/Desktop/tajjer-Copy/Taajjer/node_modules/.pnpm/drizzle-orm@0.26.5_@types+better-sqlite3@7.6.4_better-sqlite3@8.4.0/node_modules/drizzle-orm/session-e3a36009.mjs:1110:45)
    at getAllCars (C:/Users/Lion/Desktop/tajjer-Copy/Taajjer/src/routes/dashboard/cars/+page.server.ts:18:45)
    at load (C:/Users/Lion/Desktop/tajjer-Copy/Taajjer/src/routes/dashboard/cars/+page.server.ts:28:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Module.load_server_data (C:/Users/Lion/Desktop/tajjer-Copy/Taajjer/node_modules/.pnpm/@sveltejs+kit@1.20.4_svelte@3.59.2_vite@4.3.9/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js:57:17)
    at async Promise.all (index 1)
    at async Module.render_data (C:/Users/Lion/Desktop/tajjer-Copy/Taajjer/node_modules/.pnpm/@sveltejs+kit@1.20.4_svelte@3.59.2_vite@4.3.9/node_modules/@sveltejs/kit/src/runtime/server/data/index.js:111:17)
    at async resolve (C:/Users/Lion/Desktop/tajjer-Copy/Taajjer/node_modules/.pnpm/@sveltejs+kit@1.20.4_svelte@3.59.2_vite@4.3.9/node_modules/@sveltejs/kit/src/runtime/server/respond.js:393:17) {
  code: 'SQLITE_ERROR'
}
mceachen commented 1 year ago

This is a drizzle usage question. Please ask their community.