Database migration schema
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
Hướng nghiên cứu
Bắt đầu bằng cách đọc quy trình migration của Appwrite CLI và cách các thay đổi đối với appwrite.config.json được áp dụng. Tái hiện một lần cập nhật schema và một lần push nhiều bước bị lỗi để hiểu hành vi hiện tại. Được xem là hoàn tất khi dữ liệu hiện có vẫn tồn tại sau các thay đổi thuộc tính và một CLI migration bị lỗi khôi phục schema hoạt động gần nhất.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
🔖 Enhancement description
- Non-destructive / Seamless schema migrations: Changing an attribute (like its type or format) should not drop the column and wipe existing data.
- Atomic rollbacks: If an error occurs while applying schema changes via the CLI, the process should roll back to the last working state entirely, rather than leaving the database schema in a broken or partially updated state.
🎤 Pitch
In my opinion, the current “migration” via the Appwrite CLI and “appwrite.config.json” isn't really a migration at all.
The biggest problem: A single change to an existing attribute automatically leads to data loss, which is extremely critical in a production environment. And having to write a separate script for something like this isn’t worth the effort for such a basic task, in my opinion.
While this might be acceptable for side projects or early MVP stages, it becomes a massive deal-breaker when deciding whether to scale a SaaS product with Appwrite.
Furthermore, the lack of atomic rollbacks means if a CLI push fails halfway through, the schema doesn't revert to its last known good configuration, it simply breaks, leaving the database in an inconsistent state.
Feel free to correct me if I'm wrong.
👀 Have you spent some time to check if this issue has been raised before?
- I checked and didn't find similar issue
🏢 Have you read the Code of Conduct?
- I have read the Code of Conduct
- Ngôn ngữ chính
- Go
- Star
- 103
- Fork
- 45
- Merge trung bình
- 4 giờ 2 phút
- Pull request đã merge (30 ngày)
- 8
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue tương tự
-
area/gateway kind/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
vllm-project/aibrix#3226 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
gencrl: serial numbers that fail to parse are added to the CRL as 0 or a partial valueCó thể đã có người làm @sebxt đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
cloudflare/cfssl#1460 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
ironcore-dev/cloud-hypervisor-provider#210 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
OpenTollGate/tollgate-module-basic-go#1027 ·
Maintainer thường phản hồi trong vòng 1 ngày