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

问题描述 投票:0回答:1

在 Django 中运行

makemigrations
命令时,会创建迁移文件,可以在运行
migrate
命令之前手动编辑该文件(我这样做是为了更改列的顺序)。我正在使用此过程创建一个参考表,我也想立即为其添加种子。我正在为此编写一个自定义命令
seed_common
(从 CSV 读取并一次一行保存到表中,因为我必须对每行进行一些预处理)。有没有一种方法可以让我在执行
migrate
命令时运行播种代码 - 即使这意味着我已经从
nnnn_initial.py
文件手动调用它?我知道再运行一个命令进行播种可能不是什么大问题,但我只是想简化环境创建的文档,因此希望尽可能合并命令。

django
1个回答
0
投票

您只能在迁移文件中添加代码,如下所示。

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)
即可。

© www.soinside.com 2019 - 2024. All rights reserved.