mirror of
https://github.com/enricoros/big-AGI.git
synced 2026-05-11 14:10:15 -07:00
71c8d5527e
Include specific changes required when using MongoDB Atlas. The LinkStorage model needs to change, as well as the db in the Prisma configuration.
66 lines
3.8 KiB
Markdown
66 lines
3.8 KiB
Markdown
**Connecting Your Database for Enhanced Features:**
|
|
|
|
This guide outlines the database options and setup steps for enabling features like Chat Link Sharing in your application.
|
|
|
|
### Choose Your Database:
|
|
|
|
**1. Serverless Postgres (default):**
|
|
|
|
- Available on Vercel, Neon, and other platforms.
|
|
- Less feature-rich but a suitable option depending on your needs.
|
|
- **Connection String:** Replace placeholders with your Postgres credentials.
|
|
- `postgres://USER:PASS@SOMEHOST.postgres.vercel-storage.com/SOMEDB?pgbouncer=true&connect_timeout=15`
|
|
|
|
**2. MongoDB Atlas (alternative):**
|
|
|
|
- **Highly Recommended:** More than a database, it's a data platform. MongoDB Atlas is a robust cloud-based platform that offers scalability, security, and a suite of developer tools. No need for a separate vector database, you can query your vector embeddings right within your operational database!
|
|
- **Additional Features:** MongoDB Atlas is packed with unique features designed to streamline the development process such as: Atlas App Services, Atlas search (with vector search), Atlas charts, Data Federation, and more.
|
|
- **Connection String:** Replace placeholders with your Atlas credentials.
|
|
- `mongodb://USER:PASS@CLUSTER-NAME.mongodb.net/DATABASE-NAME?retryWrites=true&w=majority`
|
|
|
|
### Environment Variables:
|
|
|
|
#### Postgres:
|
|
| Variable | |
|
|
|--------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
| `POSTGRES_PRISMA_URL` | `postgres://USER:PASS@SOMEHOST.postgres.vercel-storage.com/SOMEDB?pgbouncer=true&connect_timeout=15` |
|
|
| `POSTGRES_URL_NON_POOLING` (optional) | URL for the Postgres database without pooling (specific use cases) |
|
|
|
|
|
|
#### MongoDB:
|
|
| Variable | |
|
|
|--------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
| `MDB_URI` | `mongodb://USER:PASS@CLUSTER-NAME.mongodb.net/DATABASE-NAME?retryWrites=true&w=majority` |
|
|
|
|
### MongoDB Atlas + Prisma
|
|
When using MongoDB Atlas, you'll need to make the below changes to the file `prisma.schema`
|
|
|
|
```
|
|
...
|
|
datasource db {
|
|
provider = "mongodb"
|
|
url = env("MDB_URI")
|
|
}
|
|
|
|
//
|
|
// Storage of Linked Data
|
|
//
|
|
model LinkStorage {
|
|
id String @id @default(uuid()) @map("_id")
|
|
|
|
// ...rest of file
|
|
```
|
|
|
|
### Initial Setup Steps:
|
|
|
|
1. **Run `npx prisma db:push`:** Create or update the database schema (run once after connecting).
|
|
|
|
|
|
### Additional Resources:
|
|
|
|
- Prisma documentation: [https://www.prisma.io/docs/](https://www.prisma.io/docs/)
|
|
- MongoDB Atlas: [https://www.mongodb.com/atlas/database](https://www.mongodb.com/atlas/database)
|
|
- Atlas App Services: [https://www.mongodb.com/docs/atlas/app-services/](https://www.mongodb.com/docs/atlas/app-services/)
|
|
- Atlas vector search: [https://www.mongodb.com/products/platform/atlas-vector-search/](https://www.mongodb.com/products/platform/atlas-vector-search)
|
|
- Atlas Data Federation: [https://www.mongodb.com/products/platform/atlas-data-federation](https://www.mongodb.com/products/platform/atlas-data-federation)
|