django如何通过迁移文件给数据库已存在的字段添加新的数据。

  之前自己开发的时候从来没有考虑过这个问题。

  举个例子: 现在多人合作开发一个项目,数据库里面需要新的数据,而且这些数据因为一些原因必须是统一的,因为新的功能需要这些数据。

  这种情况,我们可以用迁移文件来实现,本地实现一个迁移文件,其他开发者直接执行python manage.py migrate就可以啦。

 

  首先执行:

  

python manage.py  makemigrations --empty appname

  会在你的appname对应的迁移文件目录下生成空的迁移文件。

  然后在迁移文件中通过runpython命令实现(伪代码):

class Migration(migrations.Migration):

    def add_new_model_data(apps, schema_editor):
        model = apps.get_model('appname', 'model')
    

   # 这个函数做相反的操作,比如上面的添加了哪些数据,这里就删除哪些数据,方便日后回滚。 def del_model_data(apps, schema_editor): model = apps.get_model('appname','model')

   # 这个是自动生成的 dependencies = [ .... ] operations = [ migrations.RunPython(add_new_model_data, del_model_data), ]

 

posted @ 2020-09-15 11:29  DRQ丶  阅读(617)  评论(0编辑  收藏  举报