Skip to content
This repository has been archived by the owner on Dec 10, 2024. It is now read-only.

Commit

Permalink
fix(nuxt): drizzle seed path
Browse files Browse the repository at this point in the history
productdevbook committed Dec 22, 2023
1 parent cdb6dce commit 242a902
Showing 25 changed files with 209 additions and 38 deletions.
2 changes: 1 addition & 1 deletion examples/p-S3/package.json
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@
},
"dependencies": {
"@pergel/module-s3": "0.0.0",
"@pergel/nuxt": "0.4.0"
"@pergel/nuxt": "0.4.1"
},
"devDependencies": {
"@nuxt/devtools": "latest",
2 changes: 1 addition & 1 deletion examples/p-S3/pergel/README.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pergel:
# This file is generated by pergel. Do not edit it manually.
# Version: 0.4.0
# Version: 0.4.1
rocket:
S3:
env:
2 changes: 1 addition & 1 deletion examples/p-bullmq/package.json
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@
"postinstall": "nuxt prepare"
},
"dependencies": {
"@pergel/nuxt": "0.4.0",
"@pergel/nuxt": "0.4.1",
"bullmq": "^4.15.3",
"ioredis": "^5.3.2",
"p-timeout": "^6.1.2"
2 changes: 1 addition & 1 deletion examples/p-bullmq/pergel/README.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pergel:
# This file is generated by pergel. Do not edit it manually.
# Version: 0.4.0
# Version: 0.4.1
rocket:
bullmq:
env:
2 changes: 1 addition & 1 deletion examples/p-drizzle/package.json
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@
},
"dependencies": {
"@faker-js/faker": "^8.3.1",
"@pergel/nuxt": "0.4.0",
"@pergel/nuxt": "0.4.1",
"dotenv": "^16.3.1",
"drizzle-kit": "^0.20.7",
"drizzle-orm": "^0.29.1",
2 changes: 1 addition & 1 deletion examples/p-drizzle/pergel/README.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pergel:
# This file is generated by pergel. Do not edit it manually.
# Version: 0.4.0
# Version: 0.4.1
rocket:
drizzle:
# Script Commands
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
CREATE TABLE IF NOT EXISTS "hello" (
"id" uuid PRIMARY KEY DEFAULT uuid_generate_v4() NOT NULL,
"email" varchar NOT NULL,
"password" varchar NOT NULL,
"name" varchar NOT NULL,
CONSTRAINT "hello_email_unique" UNIQUE("email")
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "user" (
"id" uuid PRIMARY KEY DEFAULT uuid_generate_v4() NOT NULL,
"email" varchar NOT NULL,
"password" varchar NOT NULL,
"name" varchar NOT NULL,
CONSTRAINT "user_email_unique" UNIQUE("email")
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
{
"id": "1fa599ea-0763-4e6c-a46c-6cbe69d5fca9",
"prevId": "00000000-0000-0000-0000-000000000000",
"version": "5",
"dialect": "pg",
"tables": {
"hello": {
"name": "hello",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "uuid_generate_v4()"
},
"email": {
"name": "email",
"type": "varchar",
"primaryKey": false,
"notNull": true
},
"password": {
"name": "password",
"type": "varchar",
"primaryKey": false,
"notNull": true
},
"name": {
"name": "name",
"type": "varchar",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"hello_email_unique": {
"name": "hello_email_unique",
"nullsNotDistinct": false,
"columns": [
"email"
]
}
}
},
"user": {
"name": "user",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "uuid_generate_v4()"
},
"email": {
"name": "email",
"type": "varchar",
"primaryKey": false,
"notNull": true
},
"password": {
"name": "password",
"type": "varchar",
"primaryKey": false,
"notNull": true
},
"name": {
"name": "name",
"type": "varchar",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"user_email_unique": {
"name": "user_email_unique",
"nullsNotDistinct": false,
"columns": [
"email"
]
}
}
}
},
"enums": {},
"schemas": {},
"_meta": {
"schemas": {},
"tables": {},
"columns": {}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"version": "5",
"dialect": "pg",
"entries": [
{
"idx": 0,
"version": "5",
"when": 1703245466438,
"tag": "0000_marvelous_paper_doll",
"breakpoints": true
}
]
}
4 changes: 2 additions & 2 deletions examples/p-drizzle/pergel/rocket/drizzle/seeds/index.ts
Original file line number Diff line number Diff line change
@@ -4,15 +4,15 @@ import { migrate } from 'drizzle-orm/postgres-js/migrator'
import { drizzle } from 'drizzle-orm/postgres-js'
import postgres from 'postgres'
import { config } from 'dotenv'
import { seed1 } from './seed1.mjs'
import { seed1 } from './seed1'

config()

const dbUrl = process.env.NUXT_ROCKET_DRIZZLE_PG_URL
const dbDrop = process.env.NUXT_ROCKET_DRIZZLE_PG_DROP
const dbSeed = process.env.NUXT_ROCKET_DRIZZLE_PG_SEED

const migrationDir = resolve('/Users/productdevbook/works/pergel/examples/p-drizzle/pergel/rocket/drizzle/migrations')
const migrationDir = resolve('pergel/rocket/drizzle/migrations')

async function runMigrationsAndSeed() {
if (!dbUrl)
25 changes: 25 additions & 0 deletions examples/p-drizzle/pergel/rocket/drizzle/seeds/seed1.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import type { PostgresJsDatabase } from 'drizzle-orm/postgres-js'

import { faker } from '@faker-js/faker'
import * as tablesTest from '../schema/index'

export async function seed1(db: PostgresJsDatabase) {
console.warn('Seeding database...')

await db.transaction(async (trx) => {
await trx.insert(tablesTest.user).values(
[
{
email: faker.internet.email(),
name: faker.person.fullName(),
password: faker.internet.password(),
},
],
).catch((res) => {
console.warn('Seeding database... catch', res)
})
}).catch((_err: any) => {
})

console.warn('Seeding database... done')
}
2 changes: 1 addition & 1 deletion examples/p-graphqlYoga/package.json
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@
},
"dependencies": {
"@pergel/graphql": "0.0.0",
"@pergel/nuxt": "0.4.0"
"@pergel/nuxt": "0.4.1"
},
"devDependencies": {
"@nuxt/devtools": "latest",
2 changes: 1 addition & 1 deletion examples/p-graphqlYoga/pergel/README.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pergel:
# This file is generated by pergel. Do not edit it manually.
# Version: 0.4.0
# Version: 0.4.1
rocket:
graphqlYoga:
# If pergel cli is installed, you can run `pergel install` automatically to install
2 changes: 1 addition & 1 deletion examples/p-json2csv/package.json
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@
},
"dependencies": {
"@json2csv/node": "^7.0.4",
"@pergel/nuxt": "0.4.0",
"@pergel/nuxt": "0.4.1",
"node-cron": "^3.0.3"
},
"devDependencies": {
2 changes: 1 addition & 1 deletion examples/p-json2csv/pergel/README.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pergel:
# This file is generated by pergel. Do not edit it manually.
# Version: 0.4.0
# Version: 0.4.1
rocket:
json2csv:
# If pergel cli is installed, you can run `pergel install` automatically to install
2 changes: 1 addition & 1 deletion examples/p-nodeCron/package.json
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@
"postinstall": "nuxt prepare"
},
"dependencies": {
"@pergel/nuxt": "0.4.0",
"@pergel/nuxt": "0.4.1",
"node-cron": "^3.0.3"
},
"devDependencies": {
2 changes: 1 addition & 1 deletion examples/p-nodeCron/pergel/README.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pergel:
# This file is generated by pergel. Do not edit it manually.
# Version: 0.4.0
# Version: 0.4.1
rocket:
nodeCron:
# If pergel cli is installed, you can run `pergel install` automatically to install
2 changes: 1 addition & 1 deletion examples/p-ses/package.json
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@
},
"dependencies": {
"@aws-sdk/client-ses": "^3.470.0",
"@pergel/nuxt": "0.4.0"
"@pergel/nuxt": "0.4.1"
},
"devDependencies": {
"@nuxt/devtools": "latest",
2 changes: 1 addition & 1 deletion examples/p-ses/pergel/README.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pergel:
# This file is generated by pergel. Do not edit it manually.
# Version: 0.4.0
# Version: 0.4.1
rocket:
ses:
env:
32 changes: 16 additions & 16 deletions examples/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/nuxt/playground/pergel/README.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pergel:
# This file is generated by pergel. Do not edit it manually.
# Version: 0.4.0
# Version: 0.4.1
test:
drizzle:
# Script Commands
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ const dbUrl = process.env.NUXT_TEST_DRIZZLE_PG_URL
const dbDrop = process.env.NUXT_TEST_DRIZZLE_PG_DROP
const dbSeed = process.env.NUXT_TEST_DRIZZLE_PG_SEED

const migrationDir = resolve('/Users/productdevbook/works/pergel/packages/nuxt/playground/pergel/test/drizzle/migrations')
const migrationDir = resolve('pergel/test/drizzle/migrations')

async function runMigrationsAndSeed() {
if (!dbUrl)
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { existsSync, mkdirSync, writeFileSync } from 'node:fs'
import { resolve } from 'node:path'
import { join, resolve } from 'node:path'
import { startSubprocess } from '@nuxt/devtools-kit'
import type { ResolvedDrizzleConfig } from '../../types'

@@ -72,7 +72,7 @@ export default {
dbDrop: env.drop,
dbSeed: env.seed,
},
migrationDir: `${nuxt._pergel._module.options.migrationsPath}`,
migrationDir: join(nuxt._pergel._module.dir.module, nuxt._pergel._module.options.dir.migrations),
})
writeFileSync(resolve(nuxt._pergel._module.options.seedPaths, 'index.ts'), file, {
mode: 0o777,
4 changes: 4 additions & 0 deletions packages/nuxt/src/runtime/modules/drizzle/index.ts
Original file line number Diff line number Diff line change
@@ -53,6 +53,10 @@ export default definePergelModule<ResolvedDrizzleConfig>({
schemaPath: resolve(nuxt._pergel._module.moduleDir, rootOptions.schemaPath ?? 'schema'),
seedPaths: resolve(nuxt._pergel._module.moduleDir, rootOptions.seedPaths ?? 'seeds'),
mergeSchemas: false,
dir: {
schema: rootOptions.schemaPath ?? 'schema',
migrations: rootOptions.migrationsPath ?? 'migrations',
},
_driver: {
name: driverName ?? 'postgresjs',
driver: driver ?? 'pg',
17 changes: 15 additions & 2 deletions packages/nuxt/src/runtime/modules/drizzle/types.ts
Original file line number Diff line number Diff line change
@@ -65,13 +65,13 @@ export interface ResolvedDrizzleConfig {

/**
* Database schemas
* @default 'pergel/{projectName}/{moduleName}/schema'
* @default 'home/user/project1/pergel/{projectName}/{moduleName}/schema'
*/
schemaPath: string

/**
* Database migrations
* @default 'pergel/{projectName}/{moduleName}/migrations'
* @default 'home/user/project1/pergel/{projectName}/{moduleName}/migrations'
*/
migrationsPath: string

@@ -81,6 +81,19 @@ export interface ResolvedDrizzleConfig {
*/
mergeSchemas?: boolean

dir: {
/**
* Database schemas
* @default 'schema'
*/
schema: string
/**
* Database migrations
* @default 'migrations'
*/
migrations: string
}

/**
* Database seeds
* @default 'pergel/{projectName}/{moduleName}/seeds'

0 comments on commit 242a902

Please sign in to comment.