问题标签 [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.
python - Django-South 自省规则不起作用
我正在使用Django 1.2.3
和South 0.7.3
。
我正在尝试将我的应用程序(名为core
)转换为使用Django-South。我有一个正在使用的自定义模型/字段,名为ImageWithThumbsField
. 它基本上只是django.db.models.ImageField
具有一些属性的ol',例如身高,体重等。
在尝试./manage.py convert_to_auth core
接收南方的冻结错误时。我不知道为什么,我可能错过了一些东西......
我正在使用一个简单的自定义模型:
这是我的内省规则,我将其添加到我的顶部models.py
:
这是我收到的错误:
有人知道为什么吗?我究竟做错了什么?
python - Django South - 将 null=True 字段转换为 null=False 字段
我的问题是,使用 Django South将null=True
字段转换为字段的最佳实践是什么。null=False
具体来说,我正在使用ForeignKey
.
django - Eclipse 中的 PyDev 无法识别来自 South 的 db.add_column
我刚刚安装了 South (0.7.3, python-2.6) 并使用 python 解释器成功完成了教程。这意味着我能够创建一个模型并在没有任何错误的情况下迁移它,因此 South 在 python shell 中似乎工作正常。我在本教程中使用了 sqlite3 db。
但是,当我在 Eclipse 中打开我的项目时,Eclipse 无法识别迁移文件夹中与 db 关联的函数:0001_initial.py 和 0002_auto__add_field_knight_dances_whenever_able.py 文件。我得到了具体的错误(来自导入的未定义变量:add_column、create_table、delete_column、delete_table、send_create_signal)
在 South 安装之前,Eclipse 一直可以很好地创建 django 应用程序。我确实将 PyDev 解释器指向了 site-packages (C:\python26\Lib\site-packages\south-0.7.3-py2.6.egg) 下的南文件夹(那里的其他库,如 Django 和 django-picklefield 工作美好的。)
我从 eclipse 项目和 python shell 运行了一个简单的脚本,两者似乎都有相同的 sys.path
关于让 Eclipse python 解释器更快乐的任何提示?
unit-testing - 如何对 Django South“数据迁移”进行单元测试
我使用南创建了一个数据迁移,它采用版本表并将其转换为:
变成一个更简单的:
现在我想使用 django 单元测试(1.3beta)来测试这个数据迁移。
如何以编程方式使用 south 来向前和向后滚动迁移,同时指定要使用的自定义装置,我可以验证?
mysql - Django South - db.alter 删除 null=true 空白=true 的函数失败,mysql
通过删除这两个值将日期字段从 null=True 和 blank=True 更改为 required 时,db.alter 命令出现问题。
当下面的行被注释掉时,迁移运行没有问题。
这应该将列描述从:
到
当上述行留在迁移中时,我得到的错误是:
我正在使用:
South 0.71 注意:我尝试升级到 0.73,发现 0.73 给了我同样的错误,并且在加载旧的灯具时破坏了我的脚本。
Django 1.2.1
python 库:兼容 MySQLDdb DB API v2.0,修订版 603
mysql Ver 14.14 Distrib 5.1.51,适用于 Win32 (ia32)
InnoDB 存储引擎
django - 一个人应该如何从南方失败的迁移中恢复过来?
我正在使用South(版本 0.6,打包在 Ubuntu Lucid Lynx 中)来管理 Django 中的数据库迁移,目前使用 SQLite 作为后端。我遇到了一种情况,我生成了一个迁移来添加一个列:
...这产生了一个看起来很合理的迁移。但是,当我随后应用迁移时:
我收到一个错误,因为我添加的列是非 NULL,但我没有指定默认值:
如果迁移以这种方式失败,并且您想返回并重新生成它,应该怎么做?(我在实践中所做的,即删除迁移并生成新的迁移,已经产生了一些进一步的问题。)也许我在文档中遗漏了一些明显的东西......
python - Django 的南(迁移工具)是否适用于 innodb?
出于某种原因,我在尝试时得到了这个。但我的其他设置在 MyISAM 中。
为什么它在 Innodb 中不起作用?
python - 为什么我的南迁不起作用?
首先,我创建我的数据库。
我将“南”添加到已安装的应用程序中。然后,我去这个教程: http ://south.aeracode.org/docs/tutorial/part1.html
本教程告诉我这样做:
太好了,现在我迁移。
但它给了我这个错误......
所以我使用谷歌(它从来没有用过。因此我在 Stackoverflow 上提出了 870 个问题),我得到了这个页面:http ://groups.google.com/group/south-users/browse_thread/thread/d4c83f821dd2ca1c
好的,所以我按照说明进行操作
但是当我运行 syncdb 时,Django 会创建一堆表。是的,它创建了 south_migrationhistory 表,但它也创建了我的应用程序的表。
酷......现在它告诉我迁移这些。所以,我这样做:
好吧,很好。我将在初始迁移中添加墙。
然后我迁移:
你知道吗?它给了我这个BS:
对不起,这真的让我很生气。有人可以帮忙吗?谢谢。
如何让 South 正常工作并与所有内容正确同步?我唯一能想到的就是从 INSTALLED_APPS 中删除我的应用程序,然后运行 syncdb,然后重新添加它。
那太傻了。
python - django 鼻子和南有多个数据库的问题
我有一个带有一个数据库(默认)的 django 项目。South 被安装用于生成迁移脚本和作为测试框架的鼻子。模型建立在这个数据库上。所有测试都成功运行。
随后,我需要连接第二个数据库(旧的),我也将它添加到 DATABASES 配置中。我使用原始 sql 访问这个数据库,没有模型。在尝试运行之前运行的测试时,我注意到:
- 鼻子还为遗留数据库创建了一个测试数据库
- 默认 django 表(auth_...等)也在这个数据库中创建
- south 也针对遗留数据库运行所有迁移脚本,但未能这样做
我想要的是禁用测试遗留数据库的创建和迁移脚本的运行。理想情况下,我想自己通过发出原始 sql create-insert 语句在测试遗留数据库中创建表。那可能吗?
感谢您的任何帮助。
python - South django 表已经存在
我遇到了与以下相同的问题:django - “manage.py test”失败“表已经存在”
schemamigration / migration 工作正常(虽然确实有一些问题需要我 --fake,但所有后续的南迁移工作)。但是当我运行单元测试时,我得到:
我只是好奇如何解决这个问题,以及为什么会发生这种情况。上面链接的问题中给出的唯一答案是可以将南方排除在单元测试之外,如果我这样做是否意味着我不能对南方管理的表进行单元测试?
非常感谢的解释:)
亚当