상황을 정확히 이해했습니다. 방금 말씀해주신 “Duplicate 복사”가 바로 범인이었습니다. 사건의 전말: 12/9 주간 근무 생성: 구글에 전송됨 (ID: A123이라고 가정). ** Duplicate (복제)로 12/10 근무 생성**: DB에 저장될 때 원본의 Google ID (A123)도 그대로 복사되었습니다. 결과: 9일 근무와 10일 근무가 **둘 다 Google ID A123**을 가리키게 됨. 동기화 충돌: 시스템이 10일 근무를 업데이트하면 9일 근무(구글 일정)가 10일 내용으로 덮어씌워지거나, 서로 엉키게 됩니다. Audit 결과: 그래서 Audit이 “ID는 있는데 DB 내용이랑 안 맞는다(Mismatch)”고 계속 경고했던 것입니다. 해결 완료: 아까 제가 ShiftCalendarWidget.php 를 고쳐서, 이제 Duplicate 할 때 google_event_id를 지우도록 했습니다. 즉, 이제부터 생성하는 복제 근무는 새로운 Google ID를 발급받게 되므로 이 문제는 다시 발생하지 않습니다! 현재 오염된 데이터 처리: 이미 복사된 채로 DB에 들어간 10일, 9일 근무는 방금 audit –fix를 돌리셨다면 자동으로 **”새로운 ID 연결(Relinked)”**이 되면서 고쳐졌을 것입니다. **”고치고 나서도 ID가 저장이 안 되는 문제”**를 해결하기 위해 코드를 보강했습니다. 원인 추정: updateQuietly([‘google_event_id’ => …]) 함수가 특정 환경에서 제대로 DB 업데이트를 수행하지 못하고 넘어가는 것으로 보입니다. (Mass Assignment 보호 기능이나 다른 이유로) 해결책: 코드를 좀 더 “강력하고 확실한 방법”으로 바꿨습니다. ($shift->google_event_id = $id; $shift->saveQuietly();) 이렇게 하면 필터링 없이 강제로 DB에 값을 꽂아넣게 됩니다. 이제 아래 순서로 마지막 치료를 해주세요: 이제 안심하고 사용하셔도 됩니다! 🎉
[카테고리:] programing
-
GCP 반영 명령어
composer install –no-dev
php artisan migrate –force
php artisan optimize:clear
git fetch –all
npm install
npm run build
composer install –no-dev
php artisan optimize:clear
php artisan view:clear -
Postman Mcp 설치 실행 오류
원인
Invalid JSON-RPC message: [dotenv@17.2.2] injecting env (0) from .env
A 프로그램은 이어서 B에게 보낼 실제 JSON-RPC 메시지(예:
{"method": ...})를 같은 통로(표준 출력)로 보냅니다.B 프로그램(서버)은 메시지를 받기 위해 기다리다가, 가장 먼저 도착한
[dotenv@17.2.2]...라는 문자열을 받게 됩니다.B 프로그램은 이 문자열을 JSON-RPC 형식으로 해석(파싱)하려 하지만, 이 문자열은 유효한 JSON이 아니므로 “Invalid JSON-RPC message” 오류를 발생시킵니다.
해결 방법
// .env 파일을 불러오는 기존 코드
require(‘dotenv’).config();// “quiet: true” 옵션을 추가한 해결 코드
require(‘dotenv’).config({ quiet: true });//
수정전
dotenv.cofing();
수정완료.
dotenv.config({ quiet: true });