default to empty object for sqlite text field with JSON mode

How can I default a mode: 'json' text type to an empty object in sqlite?

The following in a sqliteTable definition results in a literal string of ([object Object]):

  data: text('data', { mode: 'json' }).notNull().default({}),


Empty arrays are discussed here, but not empty objects:

https://orm.drizzle.team/learn/guides/empty-array-default-value#sqlite

Using default(sql'{}') (with backticks around the single quotes, I can't get the to show up in Discord markdown) or default('{}') defaults it to a literal '{}', and querying that gives an error:

SyntaxError: Unexpected token ''', "'{}'" is not valid JSON
    at JSON.parse (<anonymous>)
    at SQLiteTextJson.mapFromDriverValue


I'm using drizzle-orm": v0.30.9 and Turso/libsql.
Drizzle ORM is a lightweight and performant TypeScript ORM with developer experience in mind.
Was this page helpful?