---
# System prepended metadata

title: Troubleshooting bkdnOJ.v2

---

# Troubleshooting bkdnOJ.v2
## DB có vấn đề khi update, nhưng có backup từ trước rồi
1. Pull backend về một vị trí mới vd (`~/backend2`), thiết lập giống như `~/backend` và confirm chạy được (`python manage runserver` ok). Mục đích pull lại về một vị trí khác là để không có những file `migrations` khác với trên git. Lưu ý vào virtual environment trước để đảm bảo python 3.8.
2. Tạo ra một DB mới (ví dụ tên là `db2`). Đổi file môi trường để trỏ sang `db2`.
3. Chúng ta sẽ lui code về phiên bản như lúc backup, rồi mới thay đổi DB theo bản mới nhất. Câu lệnh dưới đây sẽ lùi code backend về một phiên bản (một commit). VD nếu backup ở cách version hiện tại 1 version, ta chạy một lần lệnh dưới:
    ```bash
    git reset --hard HEAD~
    ```
4. Migrate db mới:
    ```bash
    python manage.py migrate
    ```
5. Backup vào db này bằng các câu lệnh `dbrestore` và `mediarestore`. Backup này nên thành công vì db sẽ cùng version với lúc mà ta tạo ra backup.
6. Sau đó, cho code backend về phiên bản mới nhất với câu lệnh:
    ```
    git reset --hard origin/main
    ```
7. Chạy db migrate. Nếu không có lỗi thì chúng ta đã migrate DB thành công sang version mới với dữ liệu đã backup. 
