Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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
django南迁移:仅重置少数表的模式_Django_Django South - Fatal编程技术网

django南迁移:仅重置少数表的模式

django南迁移:仅重置少数表的模式,django,django-south,Django,Django South,我是新的django南迁。我有我的主应用程序和该应用程序的大部分附加功能,我是作为主应用程序的子应用程序构建的。现在我要做的是重置特定于主应用程序的子应用程序的表。我不想从其他表中丢失任何数据 这就是我的数据库的外观: public | tos_agreement | table | g_db_admin public | tos_agreementversion | table | g_db_admin publi

我是新的django南迁。我有我的主应用程序和该应用程序的大部分附加功能,我是作为主应用程序的子应用程序构建的。现在我要做的是重置特定于主应用程序的子应用程序的表。我不想从其他表中丢失任何数据

这就是我的数据库的外观:

 public | tos_agreement                       | table | g_db_admin
 public | tos_agreementversion                | table | g_db_admin
 public | tos_signature                       | table | g_db_admin
 public | userclickstream_click               | table | g_db_admin
 public | userclickstream_stream              | table | g_db_admin
 public | vote                                | table | g_db_admin
(80 rows)
我只想重新构建(转储的所有数据)
public | userclickstream | click | table | g | u db | u admin 公共|用户点击流|表| g|U数据库|管理

我如何使用南方迁移来实现这一点

在我的south_migrationhistory表中,我有以下内容:

  15 | userclickstream   | 0001_initial                                                                | 2013-12-10 13:26:15.684678-06
  16 | userclickstream   | 0002_auto__del_field_stream_auth_user                                       | 2013-12-10 13:26:15.693485-06
  17 | userclickstream   | 0003_auto__del_field_stream_username__add_field_stream_user                 | 2013-12-10 13:26:15.721449-06
我想这个记录是在我最初与南方移民联系起来的时候发生的

我也在想如果? 从south_migrationhistory中删除上述记录,并重新运行此应用程序的迁移,该应用程序将生成表

./manage.py schemamigration userclickstream --initial
./manage.py migrate userclickstream
这样做:

  • 打开终端并编写
    manage.py dumpdata>backup.json
    。它将使用数据库中当前的所有数据创建一个json fixture。这样,如果你搞砸了什么,你总是可以用
    manage.py loaddata backup.json
    重新加载数据(注意,所有表都需要为空才能工作)
  • 可选:使用前面提到的
    loaddata
    命令将数据传递给新的开发数据库
  • 编写自己的迁移,不要担心破坏任何东西,因为-嘿,你有备份。这可能需要一些学习,但基本思想是创建一个具有两个函数的迁移类—正向和反向。检查并从那里慢慢地捡起来
  • 带着你在这过程中遇到的任何更具体的问题和麻烦,回到这样的问题上来

  • 这不是一个编码为“这是解决方案”的答案,但我希望这有助于编写您自己的迁移?如果我重新初始化或删除这两个表,在south migration中删除记录,会怎么样?因为我觉得有一种更简单的方法可以创建这样一个简单的脚本。再来一次?我想我不明白你在问什么我已经编辑了这个问题,我希望其他人有更好的答案。如果你只需要删除几个表,你可以通过SQL来完成。重新初始化并不是一个好主意,因为您可能会在应用程序的其他部分遇到奇怪的错误,您希望保持相同的状态,但需要重新创建这些表。此外,此应用程序是主应用程序的子应用程序。