기본 제공되는 원클릭 이전 기능을 찾고 계신가요? 팀으로 앱 이전하기를 참조하세요. 이 옵션을 사용할 수 없거나 계정 간에 복사해야 하는 경우 이 가이드를 사용하세요.
시작하기 전에
다음이 필요합니다:- 이전 프로젝트와 새 워크스페이스 또는 계정 모두에 대한 액세스 권한
- 최종 전환을 위한 약 1시간의 집중 시간. 이전 단계들은 며칠에 걸쳐 진행할 수 있습니다.
- 앱에 커스텀 웹 주소가 있는 경우, 해당 도메인을 관리하는 곳에 대한 액세스 권한
워크스페이스 관리자가 소스 코드 내보내기 금지를 활성화한 경우, 프로젝트를 zip으로 다운로드할 수 없습니다. 시작하기 전에 워크스페이스 관리자와 협의하세요—관리자는 수동 복사가 허용되는지, 코드와 데이터베이스를 이동하는 방법을 확인해 줄 수 있습니다.
다운타임 계획하기
두 번째 매장을 열고 첫 번째 매장을 닫는 것으로 생각하세요. 이전 매장이 닫히고 새 매장이 아직 열리지 않는 짧은 시간이 있습니다. 그 시간 동안 아무도 앱을 사용할 수 없습니다. 앱이 얼마나 오래 오프라인 상태가 되나요? 보통 15분에서 60분입니다. 데이터베이스에 저장된 데이터 양과 웹 주소가 얼마나 빨리 업데이트되는지에 따라 다릅니다. 데이터를 잃을 수 있나요? 데이터베이스를 복사한 후 누군가 이전 앱에 데이터를 추가하는 경우에만 그렇습니다. 이를 방지하기 위해 최종 복사를 하기 전에 이전 앱을 오프라인으로 전환합니다. 이 가이드는 그 순서대로 구성되어 있습니다. 되돌릴 수 있나요? 네. 이전 프로젝트는 삭제되지 않습니다. 문제가 발생하면 이전 앱을 다시 게시하면 이전과 똑같이 작동합니다. 언제 해야 하나요? 앱을 사용하는 사람이 적은 시간을 선택하세요. 가능하다면 사전에 사용자에게 알리세요.1단계: 코드를 새 프로젝트로 복사하기
방법을 하나 선택하세요. 이 단계에서는 이전 앱이 계속 실행됩니다. 두 방법 모두 코드를 옮깁니다. GitHub는 항상 커밋 히스토리를 옮기지만, zip은.git 폴더를 포함하는 경우에만 히스토리를 옮깁니다:
GitHub 사용
1
이전 프로젝트를 GitHub에 푸시하기
이전 프로젝트에서 Git 창을 열고, GitHub 저장소에 연결한 다음 커밋하고 푸시하세요. 코드를 공개하려는 경우가 아니라면 비공개 저장소를 사용하세요.
2
새 계정에 액세스 권한 부여하기
새 워크스페이스가 다른 Replit 계정에 속한 경우, 해당 계정의 GitHub 계정이 저장소에 액세스할 수 있어야 합니다. 비공개 저장소의 경우, 해당 GitHub 계정을 협력자로 추가하거나 공유 GitHub 조직을 사용하세요.
3
새 워크스페이스에서 가져오기
새 계정에 로그인하고 replit.com/import를 연 다음 GitHub을 선택하고, GitHub 계정을 연결하고, 저장소를 선택하세요. 문제 해결 방법은 제공업체에서 가져오기를 참조하세요.
4
복사본 확인하기
새 프로젝트를 열고 파일과 커밋 히스토리가 있는지 확인하세요. Replit은 가져오기 중에 의존성을 설치하고 실행 명령을 구성합니다.
zip 파일 사용
1
이전 프로젝트 다운로드하기
이전 프로젝트에서 파일 트리 상단의 세 점 메뉴를 선택하고 zip으로 다운로드를 선택하세요.다운로드가 성공하고 파일이 200MB 미만이면 다음 단계로 넘어가세요.200MB보다 큰 zip 파일도 다운로드는 성공할 수 있습니다. 하지만 ZIP 가져오기는 200MB를 초과하는 파일을 거부하므로 Replit이 이를 사용해 새 프로젝트를 만들 수 없습니다. 다운로드가 실패하거나 zip이 200MB를 초과하면 더 작은 파일을 만드세요:
- 이전 프로젝트에서 Shell 도구를 여세요.
-
다음 명령을 붙여넣고 Enter를 누르세요. 이 명령은
project.zip이라는 파일을 만들고 Replit이 자체적으로 재구성할 수 있는 폴더는 제외합니다: -
크기를 확인하세요. 다음 명령을 붙여넣고 Enter를 누르세요. 이 명령은 150MB의 경우
150M과 같이 MB 단위로 크기를 출력합니다: -
크기가 200MB를 초과하면 편집 히스토리를 제외하여 파일을 더 작게 만드세요. 두 줄을 모두 붙여넣고 Enter를 누르세요:
zip을 200MB 미만으로 줄여야 할 때만
.local과.git을 제외하세요. 이렇게 제외해도 이전 프로젝트에서 두 폴더가 삭제되지는 않습니다. 하지만.git이 없는 zip에는 프로젝트의 커밋 히스토리가 포함되지 않습니다. 히스토리를 보존해야 한다면 GitHub 방법을 사용하세요. -
파일 트리에서
project.zip을 찾아 옆의 세 점 메뉴를 선택하고 Download를 선택하세요.
.cache 폴더에는 캐시된 시크릿 값을 포함한 Replit 내부 상태가 저장됩니다. 직접 만드는 zip 파일에서는 항상 이 폴더를 제외하세요. 프로젝트에 다른 큰 생성 폴더가 있다면 제외 목록에 추가하세요.2
새 워크스페이스에서 가져오기
새 계정에 로그인하고 replit.com/import를 연 다음 ZIP을 선택하고 파일을 업로드하세요.
3
복사본 확인하기
새 프로젝트를 열고 파일이 있는지 확인하세요. zip에
.git 폴더가 포함되어 있다면 커밋 히스토리도 함께 옮겨집니다. 더 작은 아카이브 명령을 사용했다면 새 프로젝트는 커밋 히스토리 없이 시작됩니다. Replit은 가져오기 중에 제외된 의존성을 다시 설치합니다.2단계: 새 앱 설정하기
이전 앱은 여전히 실행 중입니다. 이 단계에서는 데이터의 테스트 복사본으로 새 앱을 완전히 작동시켜, 나중에 최종 전환을 빠르게 진행할 수 있도록 합니다.1
시크릿 추가하기
시크릿 값(API 키, 비밀번호)은 이전 프로젝트를 벗어나지 않습니다. 두 프로젝트 모두에서 시크릿 도구를 열고 각 항목을 직접 복사하세요. 배포 시크릿도 포함하세요.
2
커넥터와 기타 서비스 다시 연결하기
새 프로젝트의 도구 → 커넥터에서 각 통합을 다시 연결하세요. App Storage, 협력자 및 기타 항목은 자동으로 복사되지 않는 항목 다시 만들기를 참조하세요.
3
새 앱 게시하기
새 프로젝트를 게시하세요. 새 프로젝트는 자체
replit.app 웹 주소와 자체 빈 프로덕션 데이터베이스를 갖게 됩니다. 아직 커스텀 도메인은 연결하지 마세요.4
아래 데이터베이스 복사하기를 따라, 새 프로젝트의 프로덕션 데이터베이스를 대상으로 사용하세요. 이렇게 하면 테스트할 실제 데이터를 얻을 수 있습니다. 3단계에서 이 복사본을 최신 데이터로 교체합니다.
5
새 앱을
replit.app 주소로 열고 사용자처럼 사용해 보세요. 다음 단계로 넘어가기 전에 문제가 있는 부분을 수정하세요. 아직 사용자에게는 영향이 없습니다.3단계: 사용자를 새 앱으로 전환하기
다운타임이 발생하는 부분입니다. 한 번에 진행하세요.1
이전 앱 오프라인으로 전환하기
이전 프로젝트에서 Publishing 도구를 열고 Unpublish를 선택하세요. 이제 앱이 오프라인 상태가 됩니다. 이 시점부터 아무도 새 데이터를 추가할 수 없으므로, 다음에 만드는 복사본은 완전한 데이터를 담게 됩니다.
2
데이터베이스를 마지막으로 한 번 더 복사하기
아래 데이터베이스 복사하기를 따라, 새 프로젝트의 프로덕션 데이터베이스를 대상으로 사용하세요. 이 복사본에는 최신 데이터가 모두 담겨 있습니다.
3
웹 주소를 새 앱으로 연결하기
앱이 커스텀 도메인을 사용하는 경우: 이전 프로젝트에서 Publishing → Domains를 열고 도메인 연결을 해제하세요. 새 프로젝트에서 Publishing → Domains를 열고 연결하세요. Replit이 요청하면 도메인 제공업체(예: GoDaddy나 Namecheap)에서 레코드를 업데이트하세요.새 주소가 모든 사용자에게 적용되기까지 몇 분에서 몇 시간이 걸릴 수 있습니다. 그동안 일부 방문자는 오류를 볼 수 있습니다.앱이
replit.app 주소만 사용한다면 대신 사용자에게 새 주소를 공유하세요.4
새 앱이 실행 중인지 확인하기
웹 주소를 열고 새 앱이 데이터와 함께 로드되는지 확인하세요. 앱이 다시 온라인 상태가 되었습니다.
데이터베이스 복사하기
코드 복사는 데이터베이스에 영향을 주지 않습니다. PostgreSQL의pg_dump 및 pg_restore 도구를 사용해 데이터를 복사하세요. 두 도구 모두 두 프로젝트의 Shell에서 사용할 수 있습니다. 2단계와 3단계 모두 여기를 참조합니다. 명령은 매번 동일하며 대상만 바뀝니다.
1
이전 프로젝트에서 데이터 내보내기
이전 프로젝트에서 Shell 도구를 여세요. 다음 명령을 붙여넣고 Enter를 누르세요. 이 명령은 파일 트리에 이는 개발 데이터베이스를 내보냅니다. 실제 데이터는 보통 프로덕션 데이터베이스에 있습니다. 프로덕션 데이터베이스를 내보내려면:
backup.dump라는 파일을 만듭니다:- Database 도구를 열고 프로덕션 데이터베이스를 선택한 다음 Settings를 여세요.
- 연결 문자열을 복사하세요.
- 위 명령에서
"$DATABASE_URL"을 연결 문자열로 바꾸고, 인용 부호는 그대로 유지하세요.
2
덤프 파일을 새 프로젝트로 이동하기
이전 프로젝트의 파일 트리에서
backup.dump 옆의 세 점 메뉴를 선택하고 다운로드하세요. 그런 다음 파일 트리의 Upload files 옵션으로 새 프로젝트에 업로드하세요.GitHub로 코드를 복사한 경우, 덤프 파일을 커밋하지 마세요. 데이터가 저장소에 남지 않도록 별도로 이동하세요.3
새 프로젝트에서 데이터 가져오기
새 프로젝트에서 Shell 도구를 여세요. 다음 명령을 붙여넣고 Enter를 누르세요:위와 같이 작성하면 새 프로젝트의 개발 데이터베이스로 가져옵니다. 2단계에서는 이것이 필요합니다.3단계의 최종 복사에서는 대신 프로덕션 데이터베이스가 필요합니다. 새 프로젝트에서 Database 도구를 열고 프로덕션 데이터베이스를 선택한 다음 Settings를 열고 연결 문자열을 복사하여
"$DATABASE_URL" 대신 사용하세요.이 명령은 대상 데이터베이스의 일치하는 객체를 삭제한 다음 데이터를 로드합니다. 출력 없이 완료되면 성공한 것입니다.pg_restore가 역할 또는 정책 오류로 실패하면, 데이터베이스가 새 프로젝트에 아직 존재하지 않는 커스텀 PostgreSQL 역할을 사용하고 있는 것입니다. 도움이 필요하면 지원팀에 문의하세요.새 프로젝트가 레거시 Neon 개발 데이터베이스를 사용하는 경우, 게시 플로우에서 현재 개발 데이터로 프로덕션 데이터베이스 설정을 제공합니다. 이는 게시하는 시점에 개발 데이터베이스에 있는 내용을 복사합니다. 테스트용으로는 괜찮지만, 최종 전환에서는 최신 데이터를 얻기 위해 위의 단계를 사용하세요.
자동으로 복사되지 않는 항목 다시 만들기
프로젝트 설정의 나머지 부분은 파일 시스템 외부에 저장됩니다. 각 항목을 새 프로젝트에서 다시 만드세요:문제가 발생한 경우
이전 프로젝트는 여전히 존재합니다. 돌아가려면:- 이전 프로젝트에서 Publishing 도구를 열고 Publish를 선택하세요.
- 커스텀 도메인을 이동했다면 같은 방법으로 다시 이동하세요.
정리하기
새 앱이 정상적으로 작동하는지 확인하기 위해 일주일 정도 기다리세요. 그런 다음:- 두 프로젝트와 기기에서
backup.dump를 제거하세요. 각 복사본에는 데이터의 전체 내보내기가 포함되어 있습니다. - 원한다면 이전 프로젝트를 삭제하세요.
관련 리소스
- 팀으로 앱 이전하기: 프로젝트를 팀 워크스페이스로 또는 팀 워크스페이스 간에 이동하기 위한 기본 제공 이전 기능
- 제공업체에서 가져오기: 지원되는 모든 가져오기 소스
- 공유 데이터베이스를 사용하는 게시된 앱 수정하기: 더 많은
pg_dump및pg_restore문제 해결 방법