158 lines
2.6 KiB
Markdown
158 lines
2.6 KiB
Markdown
# prisma dev
|
|
|
|
Starts a local Prisma Postgres database for development. Provides a PostgreSQL-compatible database that runs entirely on your machine.
|
|
|
|
## Command
|
|
|
|
```bash
|
|
prisma dev [options]
|
|
```
|
|
|
|
## What It Does
|
|
|
|
- Starts a local PostgreSQL-compatible database
|
|
- Runs in your terminal or as a background process
|
|
- Perfect for development and testing
|
|
- Easy migration to Prisma Postgres cloud in production
|
|
|
|
## Options
|
|
|
|
| Option | Description | Default |
|
|
|--------|-------------|---------|
|
|
| `--name` / `-n` | Name for the database instance | `default` |
|
|
| `--port` / `-p` | HTTP server port | `51213` |
|
|
| `--db-port` / `-P` | Database server port | `51214` |
|
|
| `--shadow-db-port` | Shadow database port (for migrations) | `51215` |
|
|
| `--detach` / `-d` | Run in background | `false` |
|
|
| `--debug` | Enable debug logging | `false` |
|
|
|
|
## Examples
|
|
|
|
### Start local database
|
|
|
|
```bash
|
|
prisma dev
|
|
```
|
|
|
|
Interactive mode with keyboard shortcuts:
|
|
- `q` - Quit
|
|
- `h` - Show HTTP URL
|
|
- `t` - Show TCP URLs
|
|
|
|
### Named instance
|
|
|
|
```bash
|
|
prisma dev --name myproject
|
|
```
|
|
|
|
Useful for multiple projects.
|
|
|
|
### Background mode
|
|
|
|
```bash
|
|
prisma dev --detach
|
|
```
|
|
|
|
Frees your terminal for other commands.
|
|
|
|
### Custom ports
|
|
|
|
```bash
|
|
prisma dev --port 5000 --db-port 5432
|
|
```
|
|
|
|
## Instance Management
|
|
|
|
### List all instances
|
|
|
|
```bash
|
|
prisma dev ls
|
|
```
|
|
|
|
Shows all local Prisma Postgres instances with status.
|
|
|
|
### Start existing instance
|
|
|
|
```bash
|
|
prisma dev start myproject
|
|
```
|
|
|
|
Starts a previously created instance in background.
|
|
|
|
### Stop instance
|
|
|
|
```bash
|
|
prisma dev stop myproject
|
|
```
|
|
|
|
### Stop with glob pattern
|
|
|
|
```bash
|
|
prisma dev stop "myproject*"
|
|
```
|
|
|
|
Stops all instances matching pattern.
|
|
|
|
### Remove instance
|
|
|
|
```bash
|
|
prisma dev rm myproject
|
|
```
|
|
|
|
Removes instance data from filesystem.
|
|
|
|
### Force remove (stops first)
|
|
|
|
```bash
|
|
prisma dev rm myproject --force
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Configure your `prisma.config.ts` to use local Prisma Postgres:
|
|
|
|
```typescript
|
|
import 'dotenv/config'
|
|
import { defineConfig, env } from 'prisma/config'
|
|
|
|
export default defineConfig({
|
|
schema: 'prisma/schema.prisma',
|
|
migrations: {
|
|
path: 'prisma/migrations',
|
|
},
|
|
datasource: {
|
|
// Local Prisma Postgres URL (from prisma dev output)
|
|
url: env('DATABASE_URL'),
|
|
},
|
|
})
|
|
```
|
|
|
|
## Workflow
|
|
|
|
1. Start local database:
|
|
```bash
|
|
prisma dev
|
|
```
|
|
|
|
2. In another terminal, run migrations:
|
|
```bash
|
|
prisma migrate dev
|
|
```
|
|
|
|
3. Generate client:
|
|
```bash
|
|
prisma generate
|
|
```
|
|
|
|
4. Run your application
|
|
|
|
## Production Migration
|
|
|
|
When ready for production, switch to Prisma Postgres cloud:
|
|
|
|
```bash
|
|
prisma init --db
|
|
```
|
|
|
|
Update your `DATABASE_URL` to the cloud connection string.
|