2016-05-05 22 views
8

Tôi đã tìm kiếm bất kỳ hướng dẫn nào về điều này nhưng không thành công. Trong một dự án tôi sử dụng Django data migrations khá thường xuyên. Chúng trông giống như ví dụ từ các tài liệu. Tuy nhiên, các hoạt động đôi khi khá phức tạp và sẽ tốt hơn nếu có một số đầu ra của bảng điều khiển tóm tắt các hoạt động đã thực hiện (tức là những gì đã bị xóa/tạo/rewired/etc. Và tại sao).Có OK để in ra stdout hoặc stderr trong việc di chuyển dữ liệu Django không? Nếu vậy, làm thế nào?

Vì vậy, câu hỏi đặt ra là: có thể viết mã đăng nhập đó thành di chuyển không? Nếu vậy, tốt hơn là sử dụng mô-đun logging của Python hay chỉ print? Trong trường hợp trước đây, có thể cần cấu hình bổ sung để hiển thị các nhật ký đó (trong settings.py?). Trong trường hợp thứ hai, có thể ưu tiên stderr hoặc stdout?

Câu hỏi có thể được mở rộng cho dù đầu vào tương tác từ người dùng có được phép hay không. Các cơ sở di trú giản đồ được xây dựng sẵn có quyền yêu cầu các câu hỏi liên quan đến dữ liệu tương tác.

Custom management commands đã đề xuất các cách cung cấp đầu ra bàn điều khiển, là một phần của động lực đằng sau câu hỏi này.

Trả lời

1

Tôi nghĩ nhật ký là cách để đến đây. Vì bạn sẽ chạy các di chuyển trên máy chủ của mình, nên lưu nó vào nhật ký để bạn có thể nắm bắt nó bất cứ điều gì bạn muốn sau này.

1

stderr nên được sử dụng khi chức năng nào đó bị hỏng. IE, có một lỗi thực tế.

Bạn nên in để stdout bất kỳ lúc nào khác.

Vì vậy, nếu di chuyển của bạn có bất kỳ lỗi nào, tôi sẽ chuyển hướng những người đó đến stderr. Tôi nghĩ Marshall X đã trả lời đúng. Nếu bạn cần phải tham khảo lại bất cứ điều gì đã xảy ra và bạn đã sử dụng in, thì thông tin đơn giản là không có ở đó.

Tôi muốn sử dụng tính năng ghi nhật ký.

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