| 주인 | 헤로쿠 | |
|---|---|---|
| 테스트 | ||
| 적용 범위 |
이 프로젝트는 부동산 판매, 경찰보고 데이터 및 포스트 코드 데이터에 대한 영국 정부 데이터를 포함하여 다양한 데이터 세트를 구문 분석하는 데 중점을두고 있습니다. 목표는 지리적 정보를 활용하여 위도와 경도를 사용하여 우편 번호 사이의 연결을 설정하는 것입니다.
주요 목표는 신속하게 요청 된 결과를 제공 할 수있는 확장 가능한 그래프 QL 백엔드를 개발하는 것입니다. 이 노력은 GraphQL 사용의 복잡한 측면을 밝히려고 노력하여 N+1 문제와 같은 문제와 스케일링 시나리오가 쓰기 및 읽기 노드 모두에 둘 이상의 데이터베이스가 필요한 스케일링 시나리오를 해결하려고합니다.
이 프로젝트의 주요 기능에는 포괄적 인 QA 테스트를 위해 익명화 된 데이터 파종을 통합 한 강력한 자동 품질 보증 (QA) 시스템이 포함됩니다. 이 프로젝트는 또한 자바 스크립트의 유연성을 탐구하여 언어의 경계를 넓 힙니다. 특히, 그것은 맵 데이터 구조의 우수한 처리 용량을 강조하면서 약 840 만대로 캡핑되는 기본 V8 객체 필드의 제약 조건을 탐구합니다.
또한이 프로젝트에는 데이터 처리의 효율성을 향상시키기 위해 큐 시스템이 통합되어 있습니다. 본질적으로 프로젝트는 우수성과 혁신에 대한 헌신을 반영하여 소프트웨어 개발의 다양하고 고급적인 측면을 실용적으로 보여줍니다.
make 명령을 사용하는 경우 Docker 및 Docker-Compose가 필요하며 NPM이 있는 Local Node.js는 선택 사항입니다.
make 명령을 사용하면 추가 단계가 필요하지 않습니다. 그렇지 않으면 $ npm i$ make test 또는 $ npm test$ npm test -- --coverage , 보고서는 ./Coverage Directory에 있습니다.$ npm test src/graphql/user.test.js$ npm run sql db:migrate ORM npm run sql db:create$ npm run sql db:seed:all$ make 또는 $ npm start$ make serve , NPM 에 해당하는 것은 없습니다$ make build 또는 $ npm run build - 생성 된 자산은 ./Build Directory에 있습니다.make PORT=18081| 변하기 쉬운 | 기본값 | 유형 | 설명 |
|---|---|---|---|
| 포트 | 8081 | 숫자 | 응용 프로그램을 사용할 수있는 포트. |
| ssl_key | 끈 | SSL 키로가는 절대 경로 (예 : /home/ubuntu/private.key ). | |
| ssl_cert | 끈 | SSL 인증서의 절대 경로 (예 : /home/ubuntu/certificate.crt ). | |
| *** | *** | *** | 복제본 구성이 지정된 경우 비 복제 연결은 쓰기에만 사용됩니다. |
| DB_HOSTNAME | 127.0.0.1 | 끈 | 데이터베이스에 도달 할 수있는 호스트. |
| DB_USERNAME | 뿌리 | 끈 | 데이터베이스에 연결하기위한 사용자 이름. |
| db_password | 비밀번호 | 끈 | 데이터베이스 사용자의 비밀번호. |
| DB_PORT | 3306 | 숫자 | 데이터베이스에 도달 할 수있는 포트. |
| db_name | 탐구하다 | 끈 | 데이터베이스 스키마의 이름. |
| db_dialect | MySQL | 끈 | MySQL / Sqlite / Postgres 중 하나 인 데이터베이스 방언. |
| DB_REPLICA_HOSTNAME | 127.0.0.1 | 끈 | 읽기 전용 작업을위한 데이터베이스 복제본 호스트. |
| db_replica_username | 뿌리 | 끈 | 읽기 전용 작업을 위해 데이터베이스 복제본에 연결하기위한 사용자 이름입니다. |
| db_replica_password | 비밀번호 | 끈 | 읽기 전용 작업을 위해 데이터베이스 복제본에 연결하는 사용자의 비밀번호. |
| NPM 명령 | 해당 JS 파일 |
|---|---|
parse:postcodes | src/parse:postcodes |
parse:postcodes:lsoa | src/parse:postcodes:lsoa |
parse:incidents | src/parse:markers:and:incidents |
parse:properties | src/parse:markers:and:properties |
parse:areas | src/parse:areas |
parse:timelines | src/parse:timelines |
예 : npm run parse:postcodes -- --file=/media/data/postcodes.csv
| 데이터 베이스 | 버전 | 어댑터 | 주요 목적 |
|---|---|---|---|
| MySQL | 8 | mysql2 | 생산 |
| Postgresql | 11 | pg | 생산 |
| sqlite | 4 | sqlite3 | QA 자동화 및 CI |
MySQL 5.7+를 사용하는 경우 MySQL Native Password에서 작동 할 수 있는지 확인해야합니다.
postrgesql 및 sqlite는 쿼리 중 일부가 완전히 엔진에 공유되지 않으며 일부 함수는 예를 들어 SQLite에 존재하지 않기 때문에 부분적으로 지원됩니다.