Cloudflare D1 로컬 모드

2022. 12. 10. 18:29Develop/Javascript

728x90

 

wrangler d1 execute <DB_NAME> --local --file=schema.sql

wrangler d1 execute example --local --file=schema.sql

schema.sql 은 backup된 데이터를 cloudflare d1 대시보드에서 다운받거나, 

아래 명령을 통해 backup 본을 다운받습니다.

 

 

 

 

다운받으면 sqlite의 파일로 dump된 파일을 뱉는데, 이걸 DB Browser for Sqlite 같은걸이용해서 연뒤, 데이터베이스 내보내기를 SQL 확장자로 내보내면 DDL과 DML을 뱉습니다.

해당 sql의 파일명이 길어서 불편하니 schema.sql 로 바꾸고 다시 맨처음 명령 실행하면 되는데

 

 

D1_ALL_ERROR 발생시 프로젝트 폴더내 .wrangler/state/d1 에 있는 DB를 모두 삭제해준 뒤 다시 명령을 실행하면 충돌나는 파일이 제거되기 때문에 정상 동작 가능합니다.

 

 

 

 

# wrangler d1 backup create <db_name>
wrangler d1 backup create example


# 현재 버그가 있어서 --output 옵션이 명시되지 않으면 동작하지 않습니다.
# wrangler d1 backup download <binding_db_name> <uuid> --output=<save_path>
wrangler d1 backup download DB 12345678-1234-5678-123456789012 --output=".wrangler/state/d1/DB.sqlite3"

--output 을 wrangler가 참조하는 DB 위치로 바로 꽂아버리면 별다른 조치없이 개발서버에 디비를 반영할 수 있습니다.

728x90