> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 공유 데이터베이스를 사용하는 게시된 앱 수정

> 다른 앱을 위해 원래 생성된 데이터베이스를 계속 사용하는 게시된 앱을 업데이트하는 단계별 지침.

일부 오래된 게시된 앱은 다른 앱을 위해 원래 생성된 개발 데이터베이스에 여전히 연결되어 있을 수 있습니다.

이는 Replit에서 포크되거나 리믹스된 오래된 앱에서 발생할 수 있습니다. 레거시 Neon 설정에서는 포크가 원본 앱의 데이터베이스 연결을 계속 사용할 수 있었습니다. Replit이 개발 및 프로덕션 데이터베이스를 완전히 격리하는 방향으로 이전하면서, 오래된 공유 개발 데이터베이스는 제거되고 있으며 게시된 앱은 자체 프로덕션 데이터베이스로 이전해야 합니다.

게시된 앱에 데이터베이스 연결 오류가 표시되거나, 시크릿 패널의 `DATABASE_URL`이 아직 `neon.tech`를 가리키고 있는 경우 이 가이드를 사용하세요.

<Warning>
  오래된 공유 데이터베이스는 **2026년 6월 8일**에 종료됩니다. 다운타임이나
  영구적인 데이터 손실을 피하려면 그 전에 게시된 앱을 업데이트하세요.
</Warning>

## 시작하기 전에

게시된 앱에는 자체 **프로덕션 데이터베이스**가 필요합니다. **데이터베이스** 패널에 표시된 개발 데이터베이스를 게시된 앱에서 직접 사용해서는 안 됩니다.

<Frame>
  <img src="https://mintcdn.com/replit/H6PTzEDJVUtYAyiB/images/databases/shared-database-migration/dev-database.png?fit=max&auto=format&n=H6PTzEDJVUtYAyiB&q=85&s=15160429e896e92a599e328a7f76d0eb" alt="개발 데이터베이스를 보여주는 데이터베이스 패널" width="955" height="767" data-path="images/databases/shared-database-migration/dev-database.png" />
</Frame>

이를 수정하려면 먼저 어떤 상황인지 파악하세요:

* **사례 1:** 필요한 데이터가 이미 앱의 **데이터베이스** 패널에 표시된 데이터베이스에 있는 경우.
* **사례 2:** 게시된 앱이 여전히 오래된 공유 개발 데이터베이스를 사용하고 있어 **데이터베이스** 패널에 필요한 데이터가 표시되지 않는 경우.

## 게시된 앱이 공유 데이터베이스를 사용하고 있는지 확인하는 방법

다음 중 하나라도 해당되면 게시된 앱이 영향을 받은 것입니다:

* 데이터베이스 업그레이드 후 게시된 앱에 데이터베이스 연결 오류가 표시됨
* 앱이 **2026년 1월 9일 이전**에 데이터베이스가 있는 다른 앱에서 리믹스됨

## 게시된 앱이 소스 앱의 공유 데이터베이스를 사용하고 있는지 확인하는 방법

### 1단계: 소스 앱에서 데이터베이스 패널 열기

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/secret-pane-showing-secrets.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=4989ebfbb1cbe88ed696c9f46b306504" alt="DATABASE_URL을 보여주는 시크릿 패널" width="792" height="418" data-path="images/databases/shared-database-migration/secret-pane-showing-secrets.png" />
</Frame>

`NEON_DATABASE_URL` 값을 가져오거나, `NEON_DATABASE_URL`이 없는 경우 `DATABASE_URL` 값을 가져옵니다.

<Info>
  모든 영향을 받은 앱에 `NEON_DATABASE_URL`이 있는 것은 아닙니다. 없는 경우,
  일반적으로 게시된 앱의 시크릿에서 현재 `DATABASE_URL`이 아직 `neon.tech`를 가리키고 있다면
  그것을 사용해야 합니다.
</Info>

### 2단계: 게시된 앱에서 게시 패널 열기

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/production-app-secrets.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=e640bd643913a6e91cf2c1121cb0b466" alt="DATABASE_URL을 보여주는 게시된 앱 시크릿" width="1385" height="1225" data-path="images/databases/shared-database-migration/production-app-secrets.png" />
</Frame>

게시된 앱의 데이터베이스 URL을 확인하려면:

1. Replit에서 앱 열기
2. **게시** 패널 열기
3. **설정 조정** 열기
4. **시크릿** 열기
5. `DATABASE_URL` 찾기

### 3단계: 1단계의 소스 앱과 2단계의 리믹스 앱에서 데이터베이스 URL 비교

동일하다면 게시된 앱이 소스 앱의 공유 Neon 개발 데이터베이스를 사용하고 있는 것입니다.

## 소스 앱에서 게시된 앱으로 데이터를 복사하는 방법

게시된 앱이 소스 앱의 공유 개발 데이터베이스를 사용하고 있음을 확인한 후, 다음 단계는 필요한 데이터를 게시된 앱으로 이전하는 것입니다. 두 가지 시나리오를 고려해야 합니다:

* 사례 1: 게시된 앱의 데이터베이스 패널에 이미 필요한 데이터가 있는 경우.
* 사례 2: 게시된 앱의 데이터베이스 패널에 필요한 데이터가 없는 경우.

### 사례 1: 데이터베이스 패널에 이미 필요한 데이터가 있는 경우

앱의 **데이터베이스** 패널에 필요한 데이터가 이미 표시되어 있는 경우 가장 쉬운 경로입니다.

#### 1단계: 데이터 존재 확인

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/my-data.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=18be81996751767ffdf44edc2b3b5fd8" alt="내 데이터 행을 보여주는 데이터베이스 패널" width="865" height="454" data-path="images/databases/shared-database-migration/my-data.png" />
</Frame>

게시된 앱의 **데이터베이스** 패널을 열고 필요한 테이블과 데이터가 있는지 확인합니다.

데이터베이스 패널에서 필요한 데이터가 보이지 않으면 여기서 멈추세요. [사례 2](#case-2-the-database-panel-does-not-show-the-data-you-need)의 단계를 따라 데이터를 올바르게 마이그레이션하세요.

#### 2단계: 프로덕션 데이터베이스로 게시 또는 재게시

1. 프로젝트 편집기에서 앱 열기
2. **게시** 또는 **재게시** 선택
3. **프로덕션 데이터베이스 만들기** 켜기
4. **현재 개발 데이터로 프로덕션 데이터베이스 설정** 켜기
5. 게시 흐름 완료

게시하면 게시된 앱의 새 버전이 만들어지고 `DATABASE_URL`이 자동으로 새 프로덕션 데이터베이스로 설정됩니다. 이 흐름 중에 해당 시크릿을 수동으로 업데이트할 필요가 없습니다.

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/production-database-settings.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=a5ca44635f062423aaa9c8d8b73753e3" alt="프로덕션 데이터베이스 만들기 옵션을 보여주는 게시 설정" width="1406" height="1207" data-path="images/databases/shared-database-migration/production-database-settings.png" />
</Frame>

<Warning>
  프로덕션으로 복사하면 기존 프로덕션 데이터를 덮어씁니다. 프로덕션 데이터베이스 복원 또는 관리에 대한
  자세한 내용은 [프로덕션 데이터베이스](/references/data-and-storage/production-databases)를 참조하세요.
</Warning>

#### 3단계: 게시된 앱 확인

게시된 앱을 열고 데이터에 접근할 수 있고 앱이 올바르게 작동하는지 확인합니다.

### 사례 2: 데이터베이스 패널에 필요한 데이터가 없는 경우

게시된 앱의 **데이터베이스** 패널에서 필요한 데이터가 보이지 않는 경우 다음 단계에 따라 데이터를 내보내세요.

게시된 앱이 여전히 다른 앱의 데이터베이스에 연결되어 있으면 데이터베이스 패널에 "외부 데이터베이스 감지됨" 경고가 표시됩니다.

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/external-database-detected.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=e2599ba01a24923656e49ae221966485" alt="외부 데이터베이스 감지됨을 보여주는 데이터베이스 패널" width="1403" height="1208" data-path="images/databases/shared-database-migration/external-database-detected.png" />
</Frame>

<Warning>
  사람들이 앱을 사용하여 새 데이터를 저장하고 있는 경우, 데이터를 내보내기 전에
  짧은 유지 관리 기간을 계획하세요.
</Warning>

#### 1단계: 이전 데이터베이스에서 데이터 내보내기

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/pg-dump-example.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=aa1e5bf72df4cbb5c8162ed6cf85f594" alt="pg_dump 예시" width="1252" height="450" data-path="images/databases/shared-database-migration/pg-dump-example.png" />
</Frame>

프로젝트 편집기에서 **셸**을 열고 다음을 실행합니다:

```bash theme={null}
pg_dump -Fc "database_url" --no-owner --no-privileges -f backup.dump
```

`database_url`은 [1단계: 소스 앱에서 데이터베이스 패널 열기](#step-1-open-the-database-panel-in-the-source-app)에서 얻은 데이터베이스 URL입니다.

### 2단계: 앱 시크릿에서 이전 `DATABASE_URL` 제거

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/secret-pane.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=255b88017d8b880a4e383c7c33a0b300" alt="시크릿 패널 예시" width="1410" height="1184" data-path="images/databases/shared-database-migration/secret-pane.png" />
</Frame>

1. 프로젝트 편집기에서 **시크릿** 도구 열기
2. 이전 `DATABASE_URL` 찾기
3. 삭제하기
4. 페이지 새로고침 또는 **데이터베이스** 패널 다시 열기

이후 앱은 이전 공유 데이터베이스를 가리키지 않고 현재 개발 데이터베이스를 사용하게 됩니다.

### 3단계: 앱의 현재 개발 데이터베이스로 데이터 가져오기

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/pg-restore-example.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=a0c3faacffc9dabb3c5b1c5443467e76" alt="pg_restore 예시" width="802" height="426" data-path="images/databases/shared-database-migration/pg-restore-example.png" />
</Frame>

이전 `DATABASE_URL` 시크릿이 제거되면 앱의 현재 개발 데이터베이스가 프로젝트 편집기에서 `$DATABASE_URL`로 다시 사용 가능해집니다.

프로젝트 편집기에서 **셸**로 돌아가 다음을 실행합니다:

```bash theme={null}
pg_restore --clean --if-exists --single-transaction --no-owner --no-privileges --exit-on-error -d "$DATABASE_URL" backup.dump
```

이렇게 하면 내보낸 데이터가 앱의 현재 개발 데이터베이스로 로드됩니다.

### 5단계: 사례 1을 따라 프로덕션 데이터베이스로 게시 또는 재게시

**데이터베이스** 패널에 올바른 데이터가 표시되면, [사례 1](#case-1-the-database-panel-already-shows-the-data-you-need)을 따라 **프로덕션 데이터베이스 만들기**를 활성화하여 게시하거나 재게시하고 해당 데이터를 프로덕션으로 복사하세요.

### 6단계: 게시된 앱 확인

<Frame>
  <img src="https://mintcdn.com/replit/LrPHebhkEtjoxAa5/images/databases/shared-database-migration/successful-export.png?fit=max&auto=format&n=LrPHebhkEtjoxAa5&q=85&s=f1f982d43072c613f04661a9879da43f" alt="성공적인 내보내기" width="965" height="554" data-path="images/databases/shared-database-migration/successful-export.png" />
</Frame>

게시된 앱을 열고 데이터에 접근할 수 있고 앱이 올바르게 작동하는지 확인합니다.

## 문제 해결

### 테이블이 이미 존재하여 가져오기 실패

위의 `pg_restore --clean --if-exists` 명령은 덤프에서 일치하는 객체를 복원하기 전에 삭제하고 다시 생성합니다.

### 역할 또는 정책 오류로 가져오기 실패

데이터베이스에서 커스텀 PostgreSQL 역할이나 역할 기반 정책을 사용하는 경우, 해당 역할이 새 데이터베이스에 아직 존재하지 않아 가져오기가 실패할 수 있습니다.

Replit의 자동 Helium 마이그레이션은 복원 전에 역할 스텁을 다시 만들려고 시도하지만, 위의 수동 프로세스는 그렇지 않습니다. `pg_restore` 중 역할 관련 오류가 발생하면 [지원팀에 문의](https://replit.com/support)하세요.

### 이미 앱을 수정한 경우

게시된 앱에 이미 자체 프로덕션 데이터베이스가 있고 올바르게 작동하고 있다면 추가 작업이 필요하지 않습니다.

## 추가 도움이 필요하신가요?

어떤 사례가 앱에 해당하는지 확실하지 않거나 마이그레이션 중 문제가 발생하면 [지원팀에 문의](https://replit.com/support)하세요.

## 관련 문서

* [데이터베이스 업그레이드](/references/data-and-storage/database-upgrade)
* [프로덕션 데이터베이스](/references/data-and-storage/production-databases)
* [데이터베이스](/references/data-and-storage/sql-database)
