Comments (2)
I have determined that the issue is in the logic around here:
drizzle-orm/drizzle-orm/src/utils.ts
Line 43 in 4706ad1
I am able to bypass the issue by re-ordering my
patron
table schema and ensuring a non-nullable column is the first property listed, like so:
export const patrons = pgTable(
"patron",
{
id: text("id").primaryKey().default(defaultUUID), // <--non-nullable field first
// eslint-disable-next-line sort-keys/sort-keys-fix
birthDate: date("birth_date", { mode: "string" }),
createdAt: timestamp("created_at", { mode: "date" }).notNull().defaultNow(),
email: text("email"),
firstName: text("first_name").notNull(),
gender: text("gender", { enum: ["FEMALE", "MALE"] }),
lastName: text("last_name").notNull(),
oneRosterSourcedId: text("one_roster_sourced_id"),
organizationId: text("organization_id").notNull(),
preferredName: text("preferred_name"),
},
(t) => ({
id_by_organization: uniqueIndex().on(t.id, t.organizationId),
one_roster_id_by_org: uniqueIndex().on(
t.oneRosterSourcedId,
t.organizationId,
),
}),
);
from drizzle-orm.
This change appears to fix the issue, but I'm not confident it doesn't cause some other issue, so I don't really want to bother with a PR. I'll leave that to somebody who knows how to properly test this.
diff --git a/drizzle-orm/src/utils.ts b/drizzle-orm/src/utils.ts
index 07b8290f..ed3f8b53 100644
--- a/drizzle-orm/src/utils.ts
+++ b/drizzle-orm/src/utils.ts
@@ -45,7 +45,8 @@ export function mapResultRow<TResult>(
if (!(objectName in nullifyMap)) {
nullifyMap[objectName] = value === null ? getTableName(field.table) : false;
} else if (
- typeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)
+ typeof nullifyMap[objectName] === 'string' &&
+ (nullifyMap[objectName] !== getTableName(field.table) || value !== null)
) {
nullifyMap[objectName] = false;
}
from drizzle-orm.
Related Issues (20)
- [FEATURE]: Return insert id as the result of insert statement HOT 2
- [FEATURE]: Migration Rollback feature
- [BUG]: drizzle-zod generates ZodString type for numeric field
- [BUG]: drizzle-kit migrate doesn't exit 1 on error HOT 1
- [BUG]: IF NOT EXISTS in Migrations leads to inconsistencies
- [FEATURE]: Add support for new `pipe` syntax for drizzle-valibot
- [FEATURE]: onConflictDoUpdate() empty argument overload
- [BUG]: Date with a `.toISOString()` causes an error in the `typeHint` with PostgreSQL HOT 1
- One relation isNullable property should be !notNull rather than notNull
- [BUG]: Migrations no longer execute in 0.21.3
- [BUG]: Drizzle-kit push not making changes
- [BUG]: Relation not working as a docs example HOT 1
- [BUG]: AWS Data API - drizzle-kit push fails on NextAuth schema
- [BUG]: AWS Data API error when getting relation with where clause
- [FEATURE]: add brackets for every column into select
- [FEATURE]: Support for MongoDB.
- [BUG]: drizzle lets you write string to json pg column
- [BUG]: database url not parsing password properly
- [BUG]: UNION with magic SQL + AS is ignored HOT 1
- [BUG]: TypeError: Do not know how to serialize a BigInt
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from drizzle-orm.