diff --git a/.env.example b/.env.example index ca9ba6e..2840ecd 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,3 @@ # see process.d.ts +DATABASE_URL=postgresql://postgres:YOUR_PASSWORD@localhost:5432/sqlchat?schema=sqlchat OPENAI_API_KEY=YOUR_OPENAI_API_KEY diff --git a/README.md b/README.md index d4f3bb8..1f12871 100644 --- a/README.md +++ b/README.md @@ -61,45 +61,46 @@ docker run --name sqlchat --platform linux/amd64 --env OPENAI_API_KEY=xxx --env ## Local Development -1. Make a copy of the example environment variables file; +1. Make a copy of the example environment variables file: - ```bash - cp .env.example .env - ``` + ```bash + cp .env.example .env + ``` -2. Add your [API key](https://platform.openai.com/account/api-keys) and OpenAI API Endpoint(optional) to the newly created `.env` file; +1. Add your [API key](https://platform.openai.com/account/api-keys) and OpenAI API Endpoint(optional) to the newly created `.env` file. -3. Install dependencies and start the dev server; +1. Start a Postgres instance. For mac, you can use [StackbBricks](https://stackbricks.app/), [DBngin](https://dbngin.com/) or [Postgres.app](https://postgresapp.com/). Create a database: - ```bash - pnpm i && pnpm dev - ``` - -### Database Setup + ```sql + CREATE DATABASE sqlchat; + ``` + In `.env` file, assign the connection string to `DATABASE_URL`. 1. Install dependencies - ```bash - pnpm i - ``` + ```bash + pnpm i + ``` -1. Generate prisma client from the model +1. Generate schema - ```bash - pnpm prisma generate - ``` + 1. Generate prisma client from the model -1. Migrate schema + ```bash + pnpm prisma generate + ``` - ```bash - pnpm prisma migrate dev - ``` + 1. Migrate schema -1. Seed data + ```bash + pnpm prisma migrate dev + ``` - ```bash - pnpm prisma db seed - ``` + 1. (Optional) Seed data + + ```bash + pnpm prisma db seed + ``` ## Star History diff --git a/process.d.ts b/process.d.ts index 5431bdb..81b50ad 100644 --- a/process.d.ts +++ b/process.d.ts @@ -2,12 +2,13 @@ declare namespace NodeJS { export interface ProcessEnv { // Required. Node environment. NODE_ENV: string; + // Required. Postgres database connection string to store the data. + // e.g. postgresql://postgres:YOUR_PASSWORD@localhost:5432/sqlchat?schema=sqlchat + DATABASE_URL: string; // Required. Do not share your OpenAI API key with anyone! It should remain a secret. OPENAI_API_KEY: string; // Optional. OpenAI API endpoint. Defaults to https://api.openai.com. OPENAI_API_ENDPOINT: string; - // Optional. Database connection string to store the data. - DATABASE_URL: string; // Optional. API key to protect the backend API endpoint. // This needs to be exposed to the frontend and must be prefixed with NEXT_PUBLIC_. NEXT_PUBLIC_API_KEY: string;