问题标签 [django-south]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
101 浏览

python - 更新 Django 站点时如何维护用户数据?

我有一个已经注册用户的实时 Django 站点。我正在尝试使用与原始站点不同的新版本来更新站点 - 类似的想法但不同的模型。

如何让当前用户留在新网站上?

我听说 South 可能是一个很好的解决方案,但旧站点没有安装它。在这种情况下可以使用 South 吗?

谢谢您的帮助!

0 投票
1 回答
1966 浏览

django-models - 如何添加新模型并使用 South 0.7.2 生成迁移?

我创建了一个新模型:

$ python manage.py schemamigration forum --add-model RssFeed

0 投票
0 回答
212 浏览

django - South 认为我所有的字段都有空白=True

我刚刚添加了一个新字段并运行schemamigration app --auto生成的迁移添加了我的新字段,但也为看起来像每个不是主键的字段添加了 blank=True。

我能想到的唯一可能改变的是我最近将我的模型拆分为多个文件。我认为这种变化发生在上次迁移之前,而不是在这次失败之前。

我可以解决这个问题并重新创建迁移吗?

如果我只是删除了所有与我添加的新字段无关的行forward,会发生什么?backward


这是一个示例字段:

从我上次迁移开始:

从这个:

从模型来看,现在和一直都是:

0 投票
2 回答
2209 浏览

python - django-south 与 django-audit-log

我正在尝试将django-south 迁移到现有应用程序以向其添加django-audit-log(以跟踪用户启动的模块更改),但遇到了重大错误。特别是作为 LastUserField 的 action_user_id 字段(存储指定正在跟踪的更改的用户)。

如果我从一个空白模型开始,我可以通过以下方式添加一个 audit_log:

应用这个简单的更改并在 django-south 中进行模式迁移会理解地给我一个错误:

我阅读了 MyFieldsDontWork wiki(以及自定义字段/自省部分),但它并不是 100% 清楚我需要做什么才能使这些字段正常工作。

我尝试添加:

到我的models.py,它允许./manage.py schemamigration 创建一个迁移脚本,之前的错误消失了。但是,当我尝试迁移(应用迁移)时,出现以下错误:

编辑(中午 12 月 20 日):如果我将行添加到 models.py,我可以应用架构迁移

除此之外,audit_log 中间件不起作用,因为 myapp_mymodelauditlogentry 中没有 action_user_id 整数字段通过“id”引用“auth_user”。然后我手动应用 SQL(sqlite 语法;通过在新创建的数据库上使用 sqliteman 获得。)

它有效。如果有人用迁移/内省解释我应该如何在 django-south 的上下文中执行此操作,我仍然会给予赏金,而无需使用原始数据库依赖 SQL 并感激不尽。

另外,我为 action_user_id 创建了一个索引。我注意到模型的正常创建会导致一个名为

我发现哈希 26679921 是基于字段名称创建的,'%x' % (abs(hash(('action_user_id',))) % 4294967296L,)而不是基于其他任何内容(因此应该始终是 _26679921,除非数据库需要截断长名称)。我不确定索引的名称是否重要;但想要安全。

0 投票
2 回答
3982 浏览

python - 如何更改 Django 模型中的选择?

我有一个使用choices 属性的 Django 模型。

我的代码正在生产中,现在我想添加其他选择。

我该怎么做呢?Django 是否使用数据库约束来强制选择?我是否需要进行数据库迁移(我正在使用South)?还是 Django 只是在 Python 代码中强制执行选择限制,而我所要做的就是更改代码并重新启动?

谢谢!

0 投票
6 回答
15264 浏览

django - 使用 Django 和 South 重命名应用程序

我正在将应用程序重命名为更合适的名称。在这样做时,我想确保South正确迁移数据库(重命名数据库表并更改 django_content_type 或 south_migrationhistory 中的引用)。我知道如何将模型迁移到其他应用程序,但是当我尝试重命名应用程序本身时,South 无法正确识别迁移历史记录。

不受欢迎的解决方案:在重命名old_app时,new_app我可以old_app/migrations保持原样并将新的迁移添加到此目录以迁移数据库以引用new_app

如果可能的话,我宁愿old_app完全删除该目录。我还没有想到更好的解决这个问题的方法。

在不丢失数据的情况下使用 Django South 重命名应用程序的最佳方法是什么?

0 投票
1 回答
1009 浏览

mysql - Django 测试 - South 和 MySQL 的问题

尝试在我们的 django 项目上设置我们的系统以利用 django 的测试框架。但是,当我尝试运行时python manage.py test,会出现下面解释的各种错误。

我们正在开发一个 django 环境,我们使用 reset.bat 批处理文件来重新启动我们的开发服务器并从我们的设备加载“干净”数据。除了处理我们的本地环境之外,后台文件还执行以下操作:

当我尝试python manage.py test使用默认设置的 InnoDB 引擎运行时,我得到:

撤消创建的表的 SQL 命令显示在“此处”。

当我尝试python manage.py test使用 MyISAM 运行时,我收到有关我们在系统上伪造的表的错误,该表应该在系统运行时创建。

任何关于如何让测试运行的想法或想法将不胜感激。

0 投票
7 回答
64633 浏览

django - 使用 Django South 重置迁移历史的推荐方法是什么?

我已经使用 South (0.7) 和 Django (1.1.2) 积累了相当多的迁移,这些迁移在我的单元测试中开始消耗相当多的时间。我想重置基线并开始一组新的迁移。我已经查看了South 文档,完成了通常的 Google/Stackoverflow 搜索(例如“django south(重置或删除或删除)迁移历史”)并且没有发现任何明显的东西。

我考虑过的一种方法是通过“删除” South 或手动“清除”历史记录来“重新开始”(例如清除 db 表,从迁移目录中删除迁移文件),然后重新运行,

./manage.py schemamigration southtut --initial

因此,如果有人以前这样做过并且有一些提示/建议,他们将不胜感激。

0 投票
2 回答
4471 浏览

database - South 的回滚应该如何工作?

让我感到困惑。假设我们有一个带有 South 迁移的 Django 项目。目前,生产项目版本为A, version in development B。现在让我们假设版本B已安装到生产中:

  1. 安装新代码
  2. ./manage.py syncdb && ./manage.py migrate
  3. 重新启动网络服务器并感到高兴。

下一个假设:版本B根本不起作用。它在开发中进行了,但在生产中没有,因此必须回滚。这就是我必须遗漏的地方。我看到两种可能性:

  1. 旧代码重新安装。现在,向南向后迁移是合适的,但是,这是不可能的,因为旧代码不包含返回所需的所有最新迁移。
  2. 我们首先回滚数据库更改,然后重新安装旧代码。但是,我们如何知道哪个迁移是 version 的最新版本A?由于一个项目可以轻松计算几十个应用程序,因此您需要为每个应用程序找出哪个迁移站属于旧版本,然后分别迁移每个应用程序,然后回滚代码并希望获得最好的结果。

在这两种情况下,我都缺少关键信息,第一种情况下的迁移代码或<->第二种情况下的“迁移版本”关系。我在这里想念什么?

PS:是的,我知道我可以从备份中恢复数据库,这就是我实际所做的。我想知道整个数据库迁移理论如何适应回滚。

0 投票
2 回答
1708 浏览

python - ImportError:没有名为模型检查器的模块

执行 syncdb 时出现以下错误