Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件推送到远程git存储库时,处理Django数据库迁移的正确方法是什么?_Django_Git_Github_Migration_Repository - Fatal编程技术网

将文件推送到远程git存储库时,处理Django数据库迁移的正确方法是什么?

将文件推送到远程git存储库时,处理Django数据库迁移的正确方法是什么?,django,git,github,migration,repository,Django,Git,Github,Migration,Repository,事实上,我们是一个由3人组成的团队,在同一个项目中工作,每个人都在django数据库中单独进行更改。在单个计算机上运行迁移后,它会为每次迁移创建迁移文件。当有人在远程git存储库中推送更新的代码时,会与其他同名迁移产生冲突。 因为这个原因,我有一次丢失了所有的数据。请给我一些建议,我应该如何处理这个迁移问题?我的做法是:每当我想从远程获取数据时,我都会检查是否会获取重复的迁移。(我们有一个脚本,可以检查所有迁移目录,如果有具有相同起始编号的文件名。)如果是这种情况,我会“合并”迁移,通常如下所示

事实上,我们是一个由3人组成的团队,在同一个项目中工作,每个人都在django数据库中单独进行更改。在单个计算机上运行迁移后,它会为每次迁移创建迁移文件。当有人在远程git存储库中推送更新的代码时,会与其他同名迁移产生冲突。
因为这个原因,我有一次丢失了所有的数据。请给我一些建议,我应该如何处理这个迁移问题?

我的做法是:每当我想从远程获取数据时,我都会检查是否会获取重复的迁移。(我们有一个脚本,可以检查所有迁移目录,如果有具有相同起始编号的文件名。)如果是这种情况,我会“合并”迁移,通常如下所示:

  • 找到复制之前的最后一次迁移,假设它是迁移000X
  • 在添加副本之前,请确保您使用的是本地源版本
  • 迁移后迁移回n:

    python manage migrate app 000X
    
  • 拉取新版本,包括副本

  • 删除重复的迁移
  • 运行模式迁移

    python manage schemamigration --auto
    
  • 现在,您应该得到一个新的迁移,将模型更改添加到您在迁移过程中所做的更改之上