DT
Drizzle Teamβ€’16mo ago
Martnart

Check for empty string in postgres

Hi. First post. πŸ™‚ Started looking into migrating our project to drizzle today and am loving it so far. I want to add a not-empty check and from what I gathered from the docs and this example https://github.com/drizzle-team/drizzle-orm/blob/b003e523c637c81e2c522003db03d3d9bd98b723/drizzle-orm/type-tests/pg/tables.ts#L76 (which is the only one I could find) this code should work:
import { boolean, check, pgTable, uniqueIndex, varchar } from 'drizzle-orm/pg-core'
import { uuidPk } from './helpers'
import { sql } from 'drizzle-orm'

export const users = pgTable(
'auth_user',
{
id: uuidPk,
name: varchar('name').notNull(),
password: varchar('password').notNull(),
isAdmin: boolean('is_admin').notNull().default(false),
},
(users) => ({
nameIdx: uniqueIndex('auth_user_name_idx').on(users.name),
notEmptyName: check('notEmptyName', sql`${users.name} <> ''`),
})
)
import { boolean, check, pgTable, uniqueIndex, varchar } from 'drizzle-orm/pg-core'
import { uuidPk } from './helpers'
import { sql } from 'drizzle-orm'

export const users = pgTable(
'auth_user',
{
id: uuidPk,
name: varchar('name').notNull(),
password: varchar('password').notNull(),
isAdmin: boolean('is_admin').notNull().default(false),
},
(users) => ({
nameIdx: uniqueIndex('auth_user_name_idx').on(users.name),
notEmptyName: check('notEmptyName', sql`${users.name} <> ''`),
})
)
But it doesn't :/ the index works, but the check does not. There is no SQL generated for the migration but to be sure I also tested it in runtime after migrating but no luck. Any advice?
5 Replies
bloberenober
bloberenoberβ€’16mo ago
@Andrii Sherman
Andrii Sherman
Andrii Shermanβ€’16mo ago
@bloberenober
bloberenober
bloberenoberβ€’16mo ago
this seems like a migration generation bug?
Andrii Sherman
Andrii Shermanβ€’16mo ago
@Martnart the case is that checks are not supported in drizzle-kit yet But it’s in our backlog. You can check #drizzle-plans for that Current workaround to add check statement manually to sql file before applying to database
Martnart
Martnartβ€’16mo ago
Thanks for prompt reply. I was a bit confused because it is already being used in the test file linked above. Anyway, great job that you guys are doing. Looking forward to a bright future with drizzle πŸ™‚