chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
import 'dotenv/config';
|
||||
import { defineConfig } from 'drizzle-kit';
|
||||
export default defineConfig({
|
||||
out: './drizzle',
|
||||
schema: './src/db/schema.ts',
|
||||
dialect: 'postgresql',
|
||||
dbCredentials: {
|
||||
url: process.env.DATABASE_URL!,
|
||||
},
|
||||
tablesFilter: ["!dolt_*"], // IMPORTANT to filter out dolt system tables
|
||||
});
|
||||
@@ -0,0 +1,9 @@
|
||||
import { jsonb, integer, pgTable, varchar } from 'drizzle-orm/pg-core';
|
||||
|
||||
export const usersTable = pgTable("users", {
|
||||
id: integer().primaryKey(),
|
||||
name: varchar({ length: 255 }).notNull(),
|
||||
age: integer().notNull(),
|
||||
email: varchar({ length: 255 }).notNull().unique(),
|
||||
render: jsonb('render'),
|
||||
});
|
||||
@@ -0,0 +1,53 @@
|
||||
import 'dotenv/config';
|
||||
import { Pool } from 'pg';
|
||||
import { drizzle } from 'drizzle-orm/node-postgres';
|
||||
import { usersTable } from "./db/schema";
|
||||
import { eq } from 'drizzle-orm';
|
||||
|
||||
const connectionString = process.env.DATABASE_URL!
|
||||
const pool = new Pool({ connectionString });
|
||||
|
||||
const db = drizzle(pool);
|
||||
|
||||
async function main() {
|
||||
const user: typeof usersTable.$inferInsert = {
|
||||
id: 1,
|
||||
name: 'John',
|
||||
age: 30,
|
||||
render: null,
|
||||
email: 'john@example.com',
|
||||
};
|
||||
await db.insert(usersTable).values(user);
|
||||
console.log('New user created!')
|
||||
const users = await db.select().from(usersTable);
|
||||
console.log('Getting all users from the database: ', users)
|
||||
/*
|
||||
const users: {
|
||||
id: number;
|
||||
name: string;
|
||||
age: number;
|
||||
email: string;
|
||||
render: jsonb;
|
||||
}[]
|
||||
*/
|
||||
await db
|
||||
.update(usersTable)
|
||||
.set({
|
||||
age: 31,
|
||||
})
|
||||
.where(eq(usersTable.email, user.email));
|
||||
console.log('User info updated!')
|
||||
|
||||
// Verify the update
|
||||
const result = await db
|
||||
.select()
|
||||
.from(usersTable)
|
||||
.where(eq(usersTable.age, 31));
|
||||
console.log('Retrieved updated record:', result);
|
||||
|
||||
// Clean up
|
||||
await db.delete(usersTable).where(eq(usersTable.email, user.email));
|
||||
console.log('User deleted!')
|
||||
}
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user