skip to navigation
skip to content

Not Logged In

django-bigautohack 0.1

Nice working solution to make up for the absence of BigAutoField in django (#14286).

Django BigAuto Hack
===================

`Support for BigAutoField <https: code.djangoproject.com="" ticket="" 14286="">`_ has been a work in progress for 4 years now. But the ticket has the following valuable comment:

In the meantime, it suffices to use a standard AutoField and hack the database like so:

In the table in question, alter the field like so: ``ALTER TABLE [table_name] ALTER COLUMN [field_name] [data_type]``, where ``[data_type]`` is one of the following:

- MySQL: bigint AUTO_INCREMENT
- Oracle: NUMBER(19)
- PostgreSQL: bigserial
- SQLite: integer

For every foreign key pointing to your field, you will also need to alter the column, but with these data types:

- MySQL: bigint
- Oracle: NUMBER(19)
- PostgreSQL: bigint
- SQLite: integer

This is a pain, but you only need to do it when creating tables, once. On the other hand, users shouldn't have to hack the database for such a simple feature, in my opinion. It would be super-cool if 1.3 included a fully-functional BigAutoField.

This simple django app makes this hack less of pain. Running

::

$ python manage.py bigautohack myapp.MyModel

Will run the needed ``ALTER TABLE`` commands, turning the database column for ``MyModel``'s primary key into a big integer, as well as all columns referencing ``MyModel``.

To install simply run ``pip install django-bigautohack`` and add ``bigautohack`` to your ``INSTALLED_APPS``.

Limitation
==========

You probably need to make generic foreign keys use a big integer as well.  
File Type Py Version Uploaded on Size
django-bigautohack-0.1.tar.gz (md5) Source 2014-08-30 3KB
  • Downloads (All Versions):
  • 5 downloads in the last day
  • 22 downloads in the last week
  • 98 downloads in the last month