Skip to content

Commit 2d73e86

Browse files
committed
✨ feat(db): add postgres neon db setup
- added postgres neon db setup template - includes schema, drizzle config, and db connection - updated scripts to handle neon db setup - improved logging for better user experience - added support for environment variables for database url
1 parent 1d671b5 commit 2d73e86

File tree

4 files changed

+35
-5
lines changed

4 files changed

+35
-5
lines changed

src/index.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ try {
8484
}
8585

8686
await fs.copy(templatePath, targetPath)
87-
console.log(` Template copied to ${dbPath.toString()}`)
87+
// console.log(` 📁 Template copied to ${dbPath.toString()}`)
8888
} catch (error) {
8989
console.error('🚨 Error copying template:', error)
9090
process.exit(1)
@@ -96,14 +96,14 @@ try {
9696
drizzle_configPath,
9797
dbPath.toString()
9898
)
99-
console.log(` drizzle.config.ts added!`)
99+
// console.log(` 🛠 drizzle.config.ts added!`)
100100
} catch (error) {
101101
console.error('🚨 Error copying and modifying drizzle.config.ts:', error)
102102
}
103103

104104
try {
105105
await updateEnvFile(envVar)
106-
console.log(` .env file updated with ${envVar} at top`)
106+
// console.log(` .env file updated with ${envVar} at top`)
107107
} catch (error) {
108108
console.error('🚨 Error updating .env file:', error)
109109
}
@@ -117,7 +117,7 @@ const updateScripts = await confirm({
117117
if (updateScripts === true) {
118118
try {
119119
await UpdateScripts(scriptJsonPath)
120-
console.log(' package.json scripts updated!')
120+
// console.log(' 📑 package.json scripts updated!')
121121
} catch (error) {
122122
console.error('🚨 Error updating package.json scripts:', error)
123123
}
@@ -145,7 +145,12 @@ s.start(
145145

146146
try {
147147
await pkgMangerRun(s, pkg_manger, dbConfig)
148-
s.stop(`✅ Packages installed with ${pkg_manger.toString()}`)
148+
s.stop(
149+
`\n📁 Template copied to ${dbPath.toString()}
150+
\n🛠 drizzle.config.ts added!
151+
\n📑 package.json scripts updated!
152+
\n✅ Drizzle Setup completed!`
153+
)
149154
} catch (err) {
150155
s.stop('🚨 Failed to install packages')
151156
console.error(err)

templates/postgres/neon/db/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import 'dotenv/config'
2+
import { drizzle } from 'drizzle-orm/neon-http'
3+
4+
const db = drizzle(process.env.DATABASE_URL)
5+
6+
export default db

templates/postgres/neon/db/schema.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { integer, pgTable, varchar } from 'drizzle-orm/pg-core'
2+
3+
export const usersTable = pgTable('users', {
4+
id: integer().primaryKey().generatedAlwaysAsIdentity(),
5+
name: varchar({ length: 255 }).notNull(),
6+
age: integer().notNull(),
7+
email: varchar({ length: 255 }).notNull().unique(),
8+
})
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import 'dotenv/config'
2+
import { defineConfig } from 'drizzle-kit'
3+
4+
export default defineConfig({
5+
out: './drizzle',
6+
schema: '{{path}}/schema.ts',
7+
dialect: 'postgresql',
8+
dbCredentials: {
9+
url: process.env.DATABASE_URL!,
10+
},
11+
})

0 commit comments

Comments
 (0)