2014-01-19 15 views
0

我是新的django南迁。我有我的主应用程序和我构建的主应用程序的子应用程序的大部分附加功能。现在我想要做的是重置特定于主应用程序子应用程序的表。我不想从其他表格表中丢失任何数据。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) 

我只想重新构建(转储的所有数据)
公共| userclickstream_click |表| | g_db_admin public | userclickstream_stream |表| | g_db_admin

如何使用南迁移来做到这一点。

在我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 
+0

写自己移民? – yuvi

回答

1

这样来做:

  1. 打开你的终端和写入manage.py dumpdata > backup.json。它将创建一个包含当前数据库中所有数据的json夹具。这样,如果你搞砸了任何东西,你总是可以用manage.py loaddata backup.json重新加载数据(请注意,所有的表都需要为空才能工作)。
  2. 可选:数据传递到一个新的发展分贝使用前述方式loaddata命令
  3. 撰写自己的迁移,而不用担心破坏任何东西,因为 - 嘿,你有一个备份。这可能需要一些学习,但基本的想法是创建一个具有两个功能的迁移课程 - 前进和后退。看看south documentation并从那里慢慢捡起来。
  4. 回过头来SO与任何更具体的问题和麻烦你沿着这是不是一个编码“这里的解决方案”的回答方式

有,但我希望这可以帮助仍然

+0

如果我重新初始化或删除这两个表,删除南迁移中的记录,我觉得有更简单的方法来创建脚本这么简单的工作。 –

+0

再来?我不认为我明白你在问什么 – yuvi

+0

我编辑了这个问题,我希望别人有更好的答案。 –