# pigoNew **Repository Path**: bbsfatmark/pigo-new ## Basic Information - **Project Name**: pigoNew - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-16 - **Last Updated**: 2024-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # c1 ## TODO - service discovery during service start - grpc load balance solution ## Infra ### Service Port Mapping - Auth: 9000 - User: 9001 - Property: 9002 - Client: 9003 - Bed: 9004 - Inventory: 9005 - Admission: 9006 - Diagnose: 9007 - Medicine: 9008 - VitalSign: 9009 ### Docker Compose ```bash docker-compose -f infra/docker-compose.yaml --project-directory ./infra/ up -d docker-compose -f deploy/docker-compose/docker-compose.yaml --project-directory ./project/ up -d ``` ### Consul ```bash docker-compose -f deploy/docker-compose/docker-compose.yaml --project-directory ./project/ exec consul-server-bootstrap consul services deregister -id=web ``` ### Redis ``` docker-compose -f deploy/docker-compose/docker-compose.yaml --project-directory ./project/ exec redis-node-5 redis-cli cluster nodes ``` ## GO ENV ### Development ``` export GOPATH=/opt/workspace/chase/golang ``` ### DEBUG ``` export GOPATH=/Users/chase/go ``` ## Data Migration ### MySQL ``` docker run --name mysql -e MYSQL_ROOT_PASSWORD=rootpwd -p 3306:3306 mysql:8.0 ``` ### Create Database ``` CREATE DATABASE c1; CREATE USER 'c1'@'%' IDENTIFIED BY 'c1pwd'; GRANT ALL PRIVILEGES ON c1.\* TO 'c1'@'%'; CREATE DATABASE admission_service; GRANT ALL PRIVILEGES ON admission_service.\* TO 'c1'@'%'; CREATE DATABASE bed_service; GRANT ALL PRIVILEGES ON bed_service.\* TO 'c1'@'%'; CREATE DATABASE client_service; GRANT ALL PRIVILEGES ON client_service.\* TO 'c1'@'%'; CREATE DATABASE diagnosis_service; GRANT ALL PRIVILEGES ON diagnosis_service.\* TO 'c1'@'%'; CREATE DATABASE inventory_service; GRANT ALL PRIVILEGES ON inventory_service.\* TO 'c1'@'%'; CREATE DATABASE property_service; GRANT ALL PRIVILEGES ON property_service.\* TO 'c1'@'%'; CREATE DATABASE user_service; GRANT ALL PRIVILEGES ON user_service.\* TO 'c1'@'%'; ``` ### Create Schema ``` export APP=clinic ./bin/migrate create -ext sql -dir app/$APP/service/migration create_clinic_table ``` create table ``` CREATE TABLE IF NOT EXISTS clinics( id VARCHAR(26), name VARCHAR(255) NOT NULL, description VARCHAR(255), tel VARCHAR(10) NOT NULL, fax VARCHAR(10) NOT NULL, address VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, PRIMARY KEY (id) ) ``` drop table ``` DROP TABLE IF EXISTS clinics ``` ### Migration export MYSQL_URL ``` export MYSQL_URL='mysql://c1:c1pwd@tcp(127.0.0.1:3306)/c1' ./bin/migrate -database 'mysql://c1:c1pwd@tcp(127.0.0.1:3306)/c1' -path app/clinic/service/migration up ``` ``` ``` ### Deployment #### Docker Engine ``` yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine yum install -y yum-utils yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce docker-ce-cli containerd.io yum list docker-ce --showduplicates | sort -r systemctl start docker ``` ### Docker Compose ``` sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` #### Database ``` CREATE USER 'c1'@'%' IDENTIFIED BY 'c1pwd'; CREATE DATABASE admission_service; GRANT ALL PRIVILEGES ON admission_service.* TO 'c1'@'%'; CREATE DATABASE bed_service; GRANT ALL PRIVILEGES ON bed_service.* TO 'c1'@'%'; CREATE DATABASE client_service; GRANT ALL PRIVILEGES ON client_service.* TO 'c1'@'%'; CREATE DATABASE diagnosis_service; GRANT ALL PRIVILEGES ON diagnosis_service.* TO 'c1'@'%'; CREATE DATABASE inventory_service; GRANT ALL PRIVILEGES ON inventory_service.* TO 'c1'@'%'; CREATE DATABASE medicine_service; GRANT ALL PRIVILEGES ON medicine_service.* TO 'c1'@'%'; CREATE DATABASE property_service; GRANT ALL PRIVILEGES ON property_service.* TO 'c1'@'%'; CREATE DATABASE user_service; GRANT ALL PRIVILEGES ON user_service.* TO 'c1'@'%'; CREATE DATABASE vital_sign_service; GRANT ALL PRIVILEGES ON vital_sign_service.* TO 'c1'@'%'; CREATE DATABASE allergy_service; GRANT ALL PRIVILEGES ON allergy_service.* TO 'c1'@'%'; ``` #### Data Bootstrap - Classification - Medicine - VitalSign Types ### Design ```mermaid graph TD; A-->B; A-->C; B-->D; C-->D; ```