diff --git a/frameworks/react-cra/add-ons/drizzle/assets/drizzle.config.ts.ejs b/frameworks/react-cra/add-ons/drizzle/assets/drizzle.config.ts.ejs index d9b9a7eb..e211be95 100644 --- a/frameworks/react-cra/add-ons/drizzle/assets/drizzle.config.ts.ejs +++ b/frameworks/react-cra/add-ons/drizzle/assets/drizzle.config.ts.ejs @@ -1,7 +1,7 @@ import { config } from "dotenv"; import { defineConfig } from 'drizzle-kit'; -config(); +config({ path: ['.env.local', '.env'] }); export default defineConfig({ out: "./drizzle", diff --git a/frameworks/react-cra/add-ons/drizzle/assets/src/db/index.ts.ejs b/frameworks/react-cra/add-ons/drizzle/assets/src/db/index.ts.ejs index d9d52de7..afacf9cd 100644 --- a/frameworks/react-cra/add-ons/drizzle/assets/src/db/index.ts.ejs +++ b/frameworks/react-cra/add-ons/drizzle/assets/src/db/index.ts.ejs @@ -1,27 +1,10 @@ -import { config } from 'dotenv' -<% if (addOnOption.drizzle.database === 'postgresql') { %> -import { drizzle } from 'drizzle-orm/node-postgres'; -import { Pool } from 'pg'; +import { drizzle } from <% if (addOnOption.drizzle.database === 'postgresql') { %> +'drizzle-orm/node-postgres'; <% } else if (addOnOption.drizzle.database === 'mysql') {%> -import { drizzle } from 'drizzle-orm/mysql2'; -import mysql from 'mysql2/promise'; +'drizzle-orm/mysql2'; <% } else if (addOnOption.drizzle.database === 'sqlite') {%> -import { drizzle } from 'drizzle-orm/better-sqlite3'; -import Database from 'better-sqlite3'; +'drizzle-orm/better-sqlite3'; <% } %> import * as schema from './schema.ts' -config() - -<% if (addOnOption.drizzle.database === 'sqlite') { %> -const sqlite = new Database(process.env.DATABASE_URL!); -export const db = drizzle(sqlite, { schema }); -<% } else if (addOnOption.drizzle.database === 'postgresql') { %> -const pool = new Pool({ - connectionString: process.env.DATABASE_URL!, -}); -export const db = drizzle(pool, { schema }); -<% } else if (addOnOption.drizzle.database === 'mysql') { %> -const connection = await mysql.createConnection(process.env.DATABASE_URL!); -export const db = drizzle(connection, { schema }); -<% } %> +export const db = drizzle(process.env.DATABASE_URL!, { schema<% if (addOnOption.drizzle.database === 'mysql') {%>, mode: 'default'<% } %>}); diff --git a/frameworks/react-cra/add-ons/drizzle/assets/src/db/schema.ts.ejs b/frameworks/react-cra/add-ons/drizzle/assets/src/db/schema.ts.ejs index 3159477a..25b7da09 100644 --- a/frameworks/react-cra/add-ons/drizzle/assets/src/db/schema.ts.ejs +++ b/frameworks/react-cra/add-ons/drizzle/assets/src/db/schema.ts.ejs @@ -3,8 +3,8 @@ import { pgTable, serial, text, timestamp } from 'drizzle-orm/pg-core'; export const todos = pgTable('todos', { - id: serial('id').primaryKey(), - title: text('title').notNull(), + id: serial().primaryKey(), + title: text().notNull(), createdAt: timestamp('created_at').defaultNow(), }); <% } else if (addOnOption.drizzle.database === 'mysql') { @@ -13,8 +13,8 @@ import { mysqlTable, int, text, timestamp } from 'drizzle-orm/mysql-core'; export const todos = mysqlTable('todos', { - id: int('id').primaryKey().autoincrement(), - title: text('title').notNull(), + id: int().primaryKey().autoincrement(), + title: text().notNull(), createdAt: timestamp('created_at', { mode: 'date' }).defaultNow(), }); <% } else if (addOnOption.drizzle.database === 'sqlite') { @@ -24,9 +24,9 @@ import { sqliteTable, integer, text } from import { sql } from 'drizzle-orm'; export const todos = sqliteTable('todos', { - id: integer('id', { mode: 'number' }).primaryKey({ + id: integer({ mode: 'number' }).primaryKey({ autoIncrement: true }), - title: text('title').notNull(), + title: text().notNull(), createdAt: integer('created_at', { mode: 'timestamp' }).default(sql`(unixepoch())`), }); <% } %> \ No newline at end of file diff --git a/frameworks/react-cra/add-ons/drizzle/package.json.ejs b/frameworks/react-cra/add-ons/drizzle/package.json.ejs index 1caeeabd..abc9ea1e 100644 --- a/frameworks/react-cra/add-ons/drizzle/package.json.ejs +++ b/frameworks/react-cra/add-ons/drizzle/package.json.ejs @@ -1,17 +1,15 @@ { "dependencies": { - "drizzle-orm": "^0.39.0", - "drizzle-kit": "^0.30.0"<% if (addOnOption.drizzle.database === 'postgresql') { %>, - "pg": "^8.11.0"<% } %><% if (addOnOption.drizzle.database === 'mysql') { %>, - "mysql2": "^3.6.0"<% } %><% if (addOnOption.drizzle.database === 'sqlite') { %>, - "better-sqlite3": "^9.4.0"<% } %> + "drizzle-orm": "^0.45.0", + "drizzle-kit": "^0.31.8"<% if (addOnOption.drizzle.database === 'postgresql') { %>, + "pg": "^8.16.3"<% } %><% if (addOnOption.drizzle.database === 'mysql') { %>, + "mysql2": "^3.15.3"<% } %><% if (addOnOption.drizzle.database === 'sqlite') { %>, + "better-sqlite3": "^12.5.0"<% } %> }, "devDependencies": { "dotenv": "^16.0.0", - "tsx": "^4.0.0", - <% if (addOnOption.drizzle.database === 'postgresql') { %> - "@types/pg": "^8.10.0"<% } %><% if (addOnOption.drizzle.database === 'mysql') { %> - "@types/mysql2": "^3.6.0"<% } %><% if (addOnOption.drizzle.database === 'sqlite') { %> + "tsx": "^4.0.0"<% if (addOnOption.drizzle.database === 'postgresql') { %>, + "@types/pg": "^8.15.6"<% } %><% if (addOnOption.drizzle.database === 'sqlite') { %>, "@types/better-sqlite3": "^7.6.0"<% } %> }, "scripts": {