2012-07-08 32 views
12

Ban đầu tôi đã tạo 2 ứng dụng (app_a và app_b) trong một dự án duy nhất ở Django. Bây giờ tôi muốn xóa một (nói app_a). Tôi nên làm như thế nào? Xóa tên ứng dụng khỏi INSTALLED_APPS trong tệp cài đặt có đủ không?Cách xóa ứng dụng khỏi dự án django

Trả lời

27

Bạn cần phải loại bỏ hoặc kiểm tra như sau:

  • Di chuyển ứng dụng từ INSTALLED_APPS.
  • Xóa mọi bảng cơ sở dữ liệu cho các mô hình trong ứng dụng đó (xem app_name_model_name trong cơ sở dữ liệu của bạn).
  • Kiểm tra mọi nhập khẩu trong các ứng dụng khác (có thể là chúng đang nhập mã từ ứng dụng đó).
  • Kiểm tra các mẫu nếu chúng đang sử dụng bất kỳ thẻ mẫu nào của ứng dụng đó (sẽ tạo ra lỗi nếu ứng dụng đó không còn ở đó).
  • Kiểm tra tệp cài đặt của bạn để xem bạn có đang sử dụng bất kỳ mã nào từ ứng dụng đó hay không (chẳng hạn như bộ xử lý ngữ cảnh trong your_app/context_processors.py, nếu tệp đó có như tệp).
  • Kiểm tra xem có bất kỳ nội dung tĩnh nào của ứng dụng được sử dụng trong các ứng dụng khác hay không.
  • Xóa hoàn toàn thư mục ứng dụng.

Khi bạn đã tuân thủ các nguyên tắc mã hóa thích hợp (tức là mỗi ứng dụng Django là một phần độc lập của ứng dụng web) thì hầu hết các tình huống trên sẽ không xảy ra. Nhưng khi các ứng dụng khác sử dụng một số phần của ứng dụng đó, bạn cần phải kiểm tra xem ứng dụng đó có cần tái cấu trúc trước khi xóa ứng dụng hay không.

+1

Xin chào Simeon, cảm ơn bạn đã xem danh sách kiểm tra! :-) –

+5

Điều gì về django_contet_type, auth_permission và các bảng auth khác (bên cạnh django_migration nếu cần thiết)? – toscanelli

+1

Câu trả lời này được bổ sung cho câu trả lời này: https://stackoverflow.com/questions/35745220/how-to-remove-an-app-from-a-django-projects-and-all-its-tables (đề cập đến auth_permission và các bảng khác) – elias

0

Tùy thuộc vào ứng dụng (cách nó được cài đặt, cách sử dụng, v.v.) nhưng thường bạn có thể xóa ứng dụng khỏi INSTALLED_APPS và sau đó xóa bảng trong cơ sở dữ liệu.

Các vấn đề liên quan