为什么迁移文件经常被排除在代码格式之外?

thc*_*ark 11 python django python-black

我们正在将 Black 代码风格应用于 django 项目。

在我找到的所有教程/示例中(例如在 django cookiecutter这个博客中),我一直看到 django 的迁移文件被排除在 linter 之外。

但在我看来,这些仍然是 python 文件。当然,django 可能不会自动生成它们以满足 Black 规范。但这并不像开发人员总是编写他们的代码来满足 Black 规范......这就是 linting 的用途!

为什么迁移文件被认为与任何其他 python 文件不同?!

注意,如果您有预先存在的迁移,我知道有可能更改已应用的迁移 - 这需要注意第一个应用程序(坦率地说,第一个应用程序对代码库的其余部分也是如此)但肯定不是有理由不这样做吗?

编辑 - @torxed 要求提供 django 迁移文件的示例

我不确定这会有多大帮助,但典型的 django 迁移文件可能如下所示(在这种情况下,向表中添加一个字符字段):

# Generated by Django 2.2.3 on 2019-10-28 09:45

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('api', '0009_figures_notes_tables'),
    ]

    operations = [
        migrations.AlterField(
            model_name='project',
            name='processed_kmz_sha',
            field=models.CharField(max_length=255),
        ),
    ]
Run Code Online (Sandbox Code Playgroud)

thc*_*ark 8

我硬着头皮将 Black 应用到我的迁移文件中,并逐步应用于六个 django 项目。

完全没有问题,所有东西都已经在生产中部署了几个月了。

所以答案是:没有理由不这样做,而且我认为应该包含迁移文件,这样阅读它们就能获得与项目其余部分一致的体验。