代码之家  ›  专栏  ›  技术社区  ›  fishfin

如何在Django中创建表后立即播种数据

  •  0
  • fishfin  · 技术社区  · 2 年前

    运行时 makemigrations 在Django中的命令中,迁移文件被创建,可以在运行之前手动编辑 migrate 命令(我这样做是为了更改列的顺序)。我正在用这个过程创建一个参考表,我也想立即对其进行种子处理。我正在为此编写自定义命令 seed_common (从CSV中读取并一次将一行保存到表中,因为我必须对每行进行一些预处理)。当 迁徙 命令被执行——尽管这意味着我必须从 nnnn_initial.py 文件我知道再运行一个命令进行种子设定可能没什么大不了的,但我只是想简化环境创建的文档,所以如果可能的话,我想合并命令。

    1 回复  |  直到 2 年前
        1
  •  1
  •   shivankgtm    2 年前

    您可以在迁移文件中添加您的代码,如下所示。

    from django.db import migrations
    
    class Migration(migrations.Migration):
        dependencies = [
            ('app_name', '0001_initial.py'),
        ]
    
        """
         # your existing fields related code which is automatically generated.
        """
    
    
        def func_to_read_csv(apps, schema_editor):
            # your code
    
    
        
    
        operations = [
           "automatic migration 1" ,
           "automatic migration 2",
            migrations.RunPython(
                func_to_read_csv
            )
        ]
    

    在操作数组中,您可能已经有一些代码,只需添加另一个 migrations.RunPython(func_to_read_csv) 在那个数组中。 你的职能部门会做它的工作 python manage.py migrate