因為接手已離職前輩的工作開始碰AWS,但是最近在維護舊專案時遇到了下面這個問題。
想請問有什麼原因會導致DB資料一樣且程式碼不變的情況下,本地端與伺服器回傳的response不一樣?
伺服器:AWS EC2
後端:Django
API:回傳包含自訂項的user list
發生的問題:server端新登錄的使用者沒有出現在含有自訂項的user list,但是會出現在不包含自訂項的user list 中,但是在本地端沒有這個問題。
目前測試是把伺服端用的DB直接dump出來到本地端測試,local的自訂項API回傳是正確的(新登錄的使用者全部都有出現)。
檢查過code最後一次更新發布是在半年多前,但是在那之後新登錄的使用者都可以正常出現,一直到上上個月,那之後登錄的使用者都沒有出現在API 上。
server端含自訂項user list: ❌缺少新登錄的使用者
server端user list: ⭕(有包含新登錄使用者)
本地端含自訂項user list:⭕(有包含新登錄使用者)
本地端user list:⭕(有包含新登錄使用者)
以上,我知道可能很通靈,還煩請各位有任何想法可以給一些建議
愛心
4
全部留言
國立成功大學
1. 含自訂項和不含差在哪?
2. 你需要確定雲端和 local 的 code一模一樣
3. 可以直接連雲端的 db, 跑你程式裡的 sql 指令,看結果如何
4. 如果 sql 結果和 local db 不一樣,應該就是 db 內容不一樣
B1
R
壓力扣米a人
方便提供你的Django版本?
執行環境是(直接跑Django development server/有做WSGI或ASGI搭配Nginx reverse-proxy...etc...)?
有沒有做Migrations?
可以先參考這邊的這幾份線上文件,以及有資料庫DB的操作千萬小心!!!(免得把你家資料庫毀了QQ)
The development process
Migrations
另外這個是MDN的Django Tutorial
跟你資料庫DB有關的事情:Running database migrations!
B2
U
UCCU
你要去查api出問題那天和前幾天雲端的server有什麼改變。
B3
A
原 PO - 水母星人
感謝各位回覆,目前解決了
最後是把cache清掉解決的
B4