我们有一个虚拟Python模块(fields.py
),带有自定义Django字段,可根据配置的数据库加载实际实现:
if settings.DATABASES['default']['ENGINE'].find('postgresql') != -1:
from fields_postgresql import *
else:
from fields_dummy import *
原因是我们正在使用PostgreSQL ip4r扩展,它允许与包含IP值的字段进行良好(和快速)的工作。但是我们也有其他数据库的虚拟实现(在Python代码中),因此也可以在SQLite中完成开发。因此,如果您正在使用PostgreSQL,那些字段将使用ip4r索引备份字段,如果您使用其他数据库系统,则这些字段是常规字段。
问题是如何在这些领域使用南迁移。问题是add_introspection_rules
发现了fields_postgresql
和fields_dummy
,因此这会泄漏到迁移。如果要在使用PostgreSQL的安装上应用使用SQLite进行的迁移,则以后会出现此问题。
如何才能说服南方这只是fields
模块,并且运行哪些具体的实施迁移并不重要。
答案 0 :(得分:1)
删除对SQLite的支持。
你是对的,如果你没有在手机上运行你的开发环境,只是为了不安装Postgre维护你自己的南方迁移脚本可能不值得麻烦。
Postgre安装与维护自定义迁移代码是一次性操作,而不是连续且可能耗时的过程(因为您可能需要修改自定义迁移代码才能与较新的South版本同步)。