Loading...
Loading...
Compare original and translation side by side
export const users = pgTable('users', {
id: uuid('id').primaryKey().defaultRandom(),
email: varchar('email', { length: 255 }).notNull().unique(),
createdAt: timestamp('created_at').defaultNow().notNull(),
});export const users = pgTable('users', {
id: uuid('id').primaryKey().defaultRandom(),
email: varchar('email', { length: 255 }).notNull().unique(),
createdAt: timestamp('created_at').defaultNow().notNull(),
});export type User = typeof users.$inferSelect;
export type NewUser = typeof users.$inferInsert;export type User = typeof users.$inferSelect;
export type NewUser = typeof users.$inferInsert;export const getUserById = db
.select()
.from(users)
.where(eq(users.id, sql.placeholder('id')))
.prepare();
// Usage
const user = await getUserById.execute({ id: userId });export const getUserById = db
.select()
.from(users)
.where(eq(users.id, sql.placeholder('id')))
.prepare();
// Usage
const user = await getUserById.execute({ id: userId });return db.transaction(async (tx) => {
const [user] = await tx.insert(users).values(userData).returning();
const [profile] = await tx.insert(profiles).values({ userId: user.id, ...profileData }).returning();
return { user, profile };
});return db.transaction(async (tx) => {
const [user] = await tx.insert(users).values(userData).returning();
const [profile] = await tx.insert(profiles).values({ userId: user.id, ...profileData }).returning();
return { user, profile };
});drizzle-kitpnpm run db:generatepnpm run db:migratepnpm run db:generatepnpm run db:migratedrizzle-kitpnpm run db:generatepnpm run db:migratepnpm run db:generatepnpm run db:migratedb/
index.ts (Drizzle client initialization)
schema/
users.ts (User table & relations)
posts.ts (Post table & relations)
queries/
users.ts (User query functions)
posts.ts (Post query functions)
migrations/ (Auto-generated migration files)db/
index.ts (Drizzle客户端初始化)
schema/
users.ts (用户表及关联关系)
posts.ts (帖子表及关联关系)
queries/
users.ts (用户相关查询函数)
posts.ts (帖子相关查询函数)
migrations/ (自动生成的迁移文件)limit()offset()sql.placeholder()with()limit()offset()sql.placeholder()with()pnpm run typecheckpnpm run testpnpm run typecheckpnpm run test