또는 rayfin up db apply를 사용하여 rayfin up Rayfin 엔티티 변경을 데이터베이스에 적용하고, 스키마가 서버에 도달했는지 검증합니다.
클래스 rayfin/data/ 를 편집한다고 해서 배포된 데이터베이스가 자동으로 변경되는 것은 아닙니다. Rayfin은 당신의 엔티티를 읽고 변경 사항을 명시적으로 적용할 때만 Data API Builder(DAB) 구성을 생성합니다.
애플리케이션 업데이트에 사용 rayfin up
최신 엔터티 변경사항을 Fabric 앱에 배포하고 싶을 때마다 실행하세요npx rayfin up:
npx rayfin up
이 명령은 다음과 같습니다.
- 실행 시간 설정을 동기화합니다.
- 데코레이터
rayfin/data/에서 생성된 데이터베이스 스키마를 적용합니다. - 활성화되면
staticHosting정적 콘텐츠를 구축하고 배포합니다.
rayfin/data/의 파일이 변경될 때마다 이 명령을 실행하세요. 첫 번째 배포 이후에는 같은 배포를 새로 생성하지 않고 후속 실행이 업데이트됩니다.
데이터베이스 스키마 변경사항만 적용하세요
npx rayfin up db apply 런타임 설정을 동기화하거나 정적 콘텐츠를 배포하지 않고 데이터베이스 스키마를 적용하고 싶을 때:
npx rayfin up db apply
이 고급 서브명령어는 프론트엔드를 npm run dev실행하고 백엔드가 이미 배포되어 있을 때 스키마를 독립적으로 반복하고 싶을 때 유용합니다.
열을 삭제하거나 테이블 이름을 변경하는 등 데이터 손실이 발생할 수 있는 변경이 있을 경우, CLI는 해당 작업을 차단하고 잠재적 영향을 설명합니다. 작업을 검토하고 데이터 손실을 수용한 후, 다음과 같이 --force변경사항을 적용하세요:
npx rayfin up db apply --force
Caution
--force 이 옵션은 영구적인 데이터 손실을 초래할 수 있습니다. CLI가 보고한 모든 작업을 검토한 후에만 사용하세요.
배포된 스키마를 검증하세요
Warning
rayfin up 또는 rayfin up db apply 명령이 성공하더라도 프런트엔드가 새로 생성되었거나 변경된 엔터티를 즉시 조회할 수 있는 것은 아닙니다. 엔터티를 테스트하기 전에 배포가 정상인지 확인하세요.
rayfin/data/에 변경이 있을 때마다 배포를 확인하세요:
npx rayfin up status
배포가 정상화된 후에도 새로운 또는 변경된 엔티티가 여전히 GraphQL 오류를 반환한다면, 스키마를 명시적으로 적용한 후 다시 해당 엔티티를 테스트하세요:
npx rayfin up db apply
CLI가 잠재적으로 파괴적인 변경을 보고하고 데이터 손실을 수락할 때만 추가 --force 하세요.
기계 판독 가능한 배포 상태를 위해서는 JSON 출력을 사용하세요:
npx rayfin up status --json
JSON 응답을 스크립트에서 사용해 건강한 배포를 기다린 후 추가 검사를 실행할 수 있습니다.
일반적인 스키마 워크플로우를 따르세요
# 1. Edit an entity, such as rayfin/data/Todo.ts.
# 2. Apply the application changes.
npx rayfin up
# 3. Verify that the deployment is healthy.
npx rayfin up status
# 4. If the changed entity still fails, apply the schema explicitly.
npx rayfin up db apply
4단계에서 잠재적으로 파괴적인 작업을 보고하면, 명령어를 --force다시 실행하기 전에 이를 검토하세요.
스키마 변경 문제 해결
GraphQL은 내부 서버 오류를 반환합니다
영향을 받는 법인의 모든 @text() 필드에서 누락 max 된 값이 있는지 확인하세요. Microsoft SQL Server에서는 max 없이 @text()를 사용하면 NVARCHAR(MAX) 열이 생성되어 GraphQL 스키마 생성이 방해될 수 있습니다.
명시적인 최대 길이를 추가한 후 스키마를 적용합니다:
@text({ max: 200 })
title!: string;
npx rayfin up db apply --force
--force을 사용하기 전에 보고된 작업을 검토하세요.
CLI는 잠재적으로 파괴적인 변화를 보고합니다
나열된 연산들을 검토하세요. 여기에는 열이 빠지고, 타입이 좁아지고, 테이블이 이름 바뀌는 것들이 포함됩니다. 데이터 손실이 허용 가능한지 확인한 후에만 명령 --force 어를 다시 실행하세요.
스키마 적용이 실패합니다
실행하고 npx rayfin up status서비스가 정상화될 때까지 기다린 후 스키마 적용을 다시 시도하세요.
데이터 서비스는 방언이 없습니다
true이 services.data.enabled인 경우 dialect: mssql에서 rayfin/rayfin.yml를 구성합니다.
services:
data:
enabled: true
dialect: mssql
AI 프롬프트를 사용하세요
다음 프롬프트를 GitHub Copilot 또는 프로젝트와 터미널에 접근할 수 있는 다른 코딩 에이전트에 복사하세요:
I just added a new field to an entity in my Rayfin project's rayfin/data/ folder. Run
`npx rayfin up` to apply the change, then run `npx rayfin up status` to confirm the
deployment is healthy. If querying the changed entity still fails after that, run
`npx rayfin up db apply` and check again. Review any potentially destructive operations with me before using `--force`.