很好的工作解决方案,以弥补在Django(14286)没有BigAutofield。
django-bigautohack的Python项目详细描述
Django BigAuto黑客
===================
`对bigatofield<;https://code.djangoproject.com/ticket/14286>;`的支持已经进行了4年。但这张罚单有以下宝贵意见:
同时,使用标准的autofield并对数据库进行黑客攻击就足够了:
在所讨论的表中,按如下方式更改字段:``alter table[table[u name]alter column[field[name][data[u type]````,其中``[data[u type]``是下列之一:
-mysql:bigint自动增量
-Oracle:编号(19)
-PostgreSQL:BigSerial
-sqlite:整数
对于指向字段的每个外键,还需要更改列,但使用以下数据类型:
-mysql:bigint
-Oracle:编号(19)
-postgresql:bigint
-sqlite:整数
这是一种痛苦,但您只需要在创建表时这样做一次。另一方面,在我看来,用户不应该为了这样一个简单的功能而入侵数据库。如果1.3包含一个全功能的bigatofield,那就太酷了。
这个简单的django应用程序减少了黑客的痛苦。跑步
:
$python manage.py bigatohack myapp.mymodel
将运行所需的“alter table”命令,将“mymodel”主键的数据库列变成一个大整数,以及引用“mymodel”的所有列。
要安装,只需运行“pip install django bigauthack”,并将“bigauthack”添加到“已安装的”应用程序中即可。
限制
==========
可能还需要使泛型外键使用大整数。
===================
`对bigatofield<;https://code.djangoproject.com/ticket/14286>;`的支持已经进行了4年。但这张罚单有以下宝贵意见:
同时,使用标准的autofield并对数据库进行黑客攻击就足够了:
在所讨论的表中,按如下方式更改字段:``alter table[table[u name]alter column[field[name][data[u type]````,其中``[data[u type]``是下列之一:
-mysql:bigint自动增量
-Oracle:编号(19)
-PostgreSQL:BigSerial
-sqlite:整数
对于指向字段的每个外键,还需要更改列,但使用以下数据类型:
-mysql:bigint
-Oracle:编号(19)
-postgresql:bigint
-sqlite:整数
这是一种痛苦,但您只需要在创建表时这样做一次。另一方面,在我看来,用户不应该为了这样一个简单的功能而入侵数据库。如果1.3包含一个全功能的bigatofield,那就太酷了。
这个简单的django应用程序减少了黑客的痛苦。跑步
:
$python manage.py bigatohack myapp.mymodel
将运行所需的“alter table”命令,将“mymodel”主键的数据库列变成一个大整数,以及引用“mymodel”的所有列。
要安装,只需运行“pip install django bigauthack”,并将“bigauthack”添加到“已安装的”应用程序中即可。
限制
==========
可能还需要使泛型外键使用大整数。