Prisma 및 Railway를 사용하여 mongoDB 데이터베이스 쿼리
개요
Create Prisma Project
Provision a MongoDB Database with Railway
Connect Railway Database to Prisma Project
Create a Script to Query the Database
프리즈마 프로젝트 생성
빈 새 프로젝트를 만들고
package.json
를 초기화합니다.mkdir railway-prisma-mongodb
cd railway-prisma-mongodb
yarn init -y
prisma
종속성을 설치합니다.yarn add @prisma/client
yarn add -D prisma
type
에서 module
를 package.json
로 설정합니다.{
"name": "railway-prisma-mongodb",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"@prisma/client": "^3.10.0"
},
"devDependencies": {
"prisma": "^3.10.0"
},
"type": "module"
}
Prisma 스키마 초기화
prisma init
기본 Prisma 프로젝트를 스캐폴드합니다.yarn prisma init
다른 유일한 필요한 파일은
index.js
입니다. 이것은 Prisma Client를 사용하여 데이터베이스에 대해 테스트 명령을 실행하는 데 사용됩니다.touch index.js
이제 우리 프로젝트의 구조는 다음과 같습니다.
/
├── prisma
│ └── schema.prisma
├── .env
├── .gitignore
├── index.js
└── package.json
프리즈마 스키마
Post
파일에 다음을 추가하여 schema.prisma
모델을 정의합니다.datasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
previewFeatures = ["mongoDb"]
}
model Post {
id String @id @default(auto()) @map("_id") @db.ObjectId
slug String @unique
title String
body String
}
MongoDB 지원을 활성화하려면
previewFeatures
생성기에서 mongoDb
를 client
로 설정해야 합니다.철도로 MongoDB 데이터베이스 프로비저닝
대시보드 또는 CLI를 통해 철도로 MongoDB 데이터베이스를 설정하는 두 가지 방법이 있습니다.
철도 대시보드
대시보드를 사용하려면 dev.new을 클릭하고 "Provision MongoDB"를 선택합니다.
데이터베이스가 설정되면 왼쪽에 있는 "MongoDB"를 클릭하여 자동 생성되는 기본 테스트 데이터베이스를 확인합니다.
연결 문자열을 찾으려면 "연결"을 선택하십시오.
철도 CLI
대시보드 대신 Railway CLI를 사용하려면 먼저 install it 해야 합니다. CLI를 성공적으로 설치했는지 확인하려면 다음 명령을 실행하여 CLI 버전을 확인하십시오.
railway version
railway login
를 실행하여 철도 계정을 인증하십시오. 철도 계정이 없는 경우 계정을 만들라는 메시지가 표시됩니다.railway login
railway init
프로젝트를 초기화하고 빈 프로젝트로 시작할지 아니면 스타터 템플릿으로 시작할지 묻습니다. "빈 프로젝트"를 선택하고 프로젝트 이름을 지정합니다.railway init
railway add
를 실행하고 MongoDB를 선택하여 철도 프로젝트에 MongoDB 플러그인을 추가합니다.railway add
Prisma 프로젝트에 철도 데이터베이스 연결
철도 대시보드로 돌아가 연결 문자열을 찾습니다.
환경 변수 설정
.env
파일 안에 DATABASE_URL
가 포함되어 있고 Railway에서 제공하는 연결 문자열로 변수를 설정합니다. 포트 번호 뒤에 /test?authSource=admin
를 추가하여 연결 문자열 끝에 데이터베이스 이름과 인증 소스를 지정합니다.DATABASE_URL="mongodb://mongo:<PASSWORD>@containers-us-west-1.railway.app:6852/test?authSource=admin"
prisma db push
를 사용하여 스키마를 데이터베이스와 동기화하십시오.yarn prisma db push
종자 데이터베이스
mongosh
명령을 사용하여 데이터베이스에 직접 연결할 수도 있습니다.mongosh "mongodb://mongo:<PASSWORD>@containers-us-west-1.railway.app:6852"
데이터베이스는 철도 대시보드에서 또는 다음 seed 명령을 사용하여
mongosh
를 통해 시드할 수 있습니다.db.Post.insertOne(
{
slug: "first-post-slug",
title: "First Post Title",
body: "First post body."
}
)
데이터를 보려면 철도 대시보드의 데이터 탭을 확인하세요.
Prisma 클라이언트 생성
prisma generate
명령으로 Prisma 클라이언트를 생성합니다.yarn prisma generate
데이터베이스를 쿼리하는 스크립트 만들기
다음 스크립트를
index.js
에 추가하여 데이터베이스에서 데이터를 읽을 수 있는지 테스트합니다. 이 함수는 findMany
컬렉션에서 post
쿼리를 실행하고 컬렉션의 모든 게시물을 반환합니다.// index.js
import pkg from '@prisma/client'
const { PrismaClient } = pkg
const prisma = new PrismaClient()
async function main() {
await prisma.$connect()
const posts = await prisma.post.findMany()
console.dir(posts, { depth: Infinity })
}
main()
.catch(console.error)
.finally(() => prisma.$disconnect())
스크립트 실행
node index.js
를 실행하여 main
기능을 실행합니다.node index.js
올바르게 따라했다면 다음과 같은 결과를 얻어야 합니다.
[
{
id: '61f369df79160504b0ee41d9',
slug: 'first-post-slug',
title: 'First Post Title',
body: 'First post body.'
}
]
Reference
이 문제에 관하여(Prisma 및 Railway를 사용하여 mongoDB 데이터베이스 쿼리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ajcwebdev/query-a-mongodb-database-with-prisma-and-railway-ig8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)