Skip to content

Edsol/drizzle-schema-generator

Repository files navigation

NPM

Drizzle schema generator

Automatically generate of Drizzle ORM schema from existing database

Install

npm install drizzle-schema-generator

Roadmap

[x] Extend to PostgreSQL

[x] Optimize performances

[ ] Unify adapter logic

[ ] Extend to SQLite (coming soon)

Usage

import the Adapter and inizialize it with the connection information:

import { Adapter } from "drizzle-schema-generator"; const adatper = new Adapter({ dbType: process.env.DATABASE_TYPE, host: process.env.DATABASE_HOST, user: process.env.DATABASE_USER, password: process.env.DATABASE_PASSWORD, database: process.env.DATABASE_NAME, });

Get Drizzle ORM schema:

const drizzelSchema = await adatper.getSchema();

or get connection:

adapter.getConnection();

Use case

Extract schema from existing database to start Graphql server (like Apollo) using drizzle-graphql plugin:

import dotenv from "dotenv"; dotenv.config(); import { buildSchema } from "drizzle-graphql"; import { drizzle } from "drizzle-orm/mysql2"; import { ApolloServer } from "@apollo/server"; import { startStandaloneServer } from "@apollo/server/standalone"; import { Adapter } from "drizzle-schema-generator"; async function main() { const adatper = new Adapter({ dbType: process.env.DATABASE_TYPE, host: process.env.DATABASE_HOST, user: process.env.DATABASE_USER, password: process.env.DATABASE_PASSWORD, database: process.env.DATABASE_NAME, }); const drizzelSchema = await adatper.getSchema(); const db = drizzle(adatper.getConnection(), { schema: drizzelSchema, mode: "default", }); const { schema } = buildSchema(db); const server = new ApolloServer({ schema }); const { url } = await startStandaloneServer(server); console.log(`🚀 Apollo Server ready at ${url}`); } main();

Examples

More examples are available here

About

Automatically generate of Drizzle schema from existing database

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published