【问题标题】:django south migration: Reset the schema only few tablesdjango 南迁移:仅重置几个表的架构
【发布时间】:2014-02-08 18:39:51
【问题描述】:

我是新的 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)

我只想重新构建(转储所有数据)
公共 |用户点击流_点击 |表| g_db_admin 公共 | 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

【问题讨论】:

  • 编写自己的迁移?

标签: django django-south


【解决方案1】:

这样做:

  1. 打开你的终端并写manage.py dumpdata > backup.json。它将创建一个包含当前数据库中所有数据的 json 夹具。这样一来,如果您搞砸了,您始终可以使用 manage.py loaddata backup.json 重新加载数据(请注意,所有表格都需要为空才能正常工作)。
  2. 可选:使用上述loaddata 命令将数据传递到新的开发数据库
  3. 编写您自己的迁移,不用担心破坏任何东西,因为 - 嘿,您有备份。这可能需要一些学习,但基本思想是创建一个具有两个功能的迁移类 - 正向和反向。查看south documentation 并从那里慢慢拿起它。
  4. 如果您遇到任何更具体的问题和麻烦,请回到 SO

这不是一个编码的“这是解决方案”的答案,但我希望这仍然会有所帮助

【讨论】:

  • 如果我重新初始化或删除这两个表会删除南迁移中的记录,因为我觉得创建脚本这样简单的工作有更简单的方法。
  • 又来了?我不认为我明白你在问什么
  • 我已经编辑了这个问题,我希望其他人有更好的答案。
  • 如果您只需要删除几张表,您总是可以通过您的 SQL 来完成。重新初始化不是一个好主意,因为您可能会在您希望保持不变的应用程序的其他部分遇到奇怪的错误
  • 我需要重新创建这些表。此应用也是主应用的子应用。
猜你喜欢
  • 2014-06-22
  • 2012-02-23
  • 2014-12-21
  • 2011-04-03
  • 2012-06-05
  • 2013-10-06
  • 2021-01-25
  • 2014-12-24
相关资源
最近更新 更多