在Django数据迁移中打印到stdout或stderr可以吗?如果是,怎么办?

2024-04-27 07:22:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在寻找这方面的指导方针,但没有成功。在项目中,我经常使用Django data migrations。它们看起来或多或少像文档中的示例。然而,操作有时相当复杂,最好有一些控制台输出来总结所执行的操作(例如,删除/创建/重新布线的内容以及原因)。在

所以问题是:将这样的日志记录编码到迁移中可以吗?如果是这样,那么使用Python的logging模块还是仅仅使用print更好?在前一种情况下,可能需要一个额外的配置来使这些日志可见(在settings.py?)。在后一种情况下,stderr还是{}是首选?在

这个问题可以扩展到是否允许来自用户的交互式输入。内置的模式迁移工具很容易提出与数据相关的交互式问题。在

Custom management commands推荐了提供控制台输出的方法,这也是这个问题背后的动机之一。在


Tags: 模块项目django文档示例内容编码data
2条回答

stderr应该在某些功能失效时使用。也就是说,确实有个错误。在

你应该在其他时间打印到stdout。在

因此,如果您的迁移有任何错误,我会将这些错误重定向到stderr。另一方面,我认为马歇尔X的回答是正确的。如果你需要回顾发生过的任何事情,而你使用的是印刷品,那么信息根本就不存在。在

我会用日志记录。在

我想原木是最好的选择。因为您要在服务器上运行迁移,所以最好将其保存到日志中,这样以后您可以根据需要捕获它。在

相关问题 更多 >