05·실습·12분
데이터 다루기
앱의 데이터는 처음부터 여러분의 것인 PostgreSQL 데이터베이스에 있습니다. 데이터베이스 페이지에는 세 가지 화면이 있습니다.
스키마
테이블과 그 연결을 보여주는 도식입니다. 각 상자는 테이블이고 각 선은 외래 키, 즉 다른 테이블의 행을 가리키는 열입니다(주문은 주문한 고객을 가리킵니다). 기본 키가 표시되며, 다른 모든 테이블이 행을 가리킬 때 쓰는 id입니다.
데이터
테이블별 실제 행입니다. 빌드가 실제로 무엇을 저장했는지 확인하거나 레코드 하나의 오타를 고칠 때 씁니다.
Enum
허용 값의 고정 목록입니다. 예를 들어 주문 상태는 pending, paid, shipped만 가능하게. 열이 짧고 닫힌 값 집합만 받아야 할 때 쓰세요.
스키마 바꾸기
어시스턴트 패널에 변경을 설명하세요. "orders에 notes 열 추가", "코드와 만료일이 있는 쿠폰 테이블 생성." Insight가 이를 마이그레이션, 즉 검사 후 적용되는 작은 SQL 스크립트로 바꿉니다. 패널은 무엇이 바뀌었는지 알려줍니다. 생성된 테이블, 추가된 열, 경고.
마이그레이션은 각각 기록되고 정확히 한 번만 적용되기 때문에 운영 중인 데이터베이스를 바꾸는 안전한 방법입니다. 기존 페이지가 쓰는 열의 이름을 바꾸거나 삭제하면 그 페이지는 다시 빌드할 때까지 깨지므로, 앱을 쓰는 동안에는 이름 변경보다 추가를 택하세요.
DontCode에서는
모든 프로젝트는 격리된 자체 스키마를 받고, users 테이블은 플랫폼이 관리하며 보호됩니다. 마이그레이션은 위험한 문장을 막는 검증 파이프라인을 거치고, 실패한 마이그레이션은 반쯤 적용되지 않고 되돌려집니다.
이해도 확인
1.스키마 화면에서 orders와 customers 상자 사이의 선은 무슨 뜻일까요?
2.운영 중인 앱에 total 열로 주문을 나열하는 페이지가 있습니다. 세금도 추적하려면 가장 안전한 방법은?
과제
인사이트 프로젝트데이터베이스를 열고 어시스턴트에게 스키마 변경을 요청하세요. 예를 들어 새 테이블이나 기존 테이블의 새 열. 마이그레이션이 성공적으로 적용되면 확인이 통과됩니다.