Skip to main content

Extensions to Django for use with MySQL/MariaDB

Project description

https://badge.fury.io/py/django-mysql.png https://travis-ci.org/adamchainz/django-mysql.png?branch=master https://coveralls.io/repos/adamchainz/django-mysql/badge.svg https://pypip.in/d/django-mysql/badge.png https://readthedocs.org/projects/django-mysql/badge/?version=latest
The dolphin-pony - proof that cute + cute = double cute.
The dolphin-pony - proof that cute + cute = double cute.

Django-MySQL is a non-inventively named package that helps you use some MySQL/MariaDB-specific features in the world of Django.

What kind of features?

Here’s a short list of what’s inside:

  • QuerySet extensions - ‘smart’ iteration, approx_count for quick estimates of count(), quick pt-visual-explain of the underlying query

  • Handler - quicker reads using MySQL’s built-in NoSQL API

  • Status variable inspection and utility methods

  • User locks - use MySQL as a locking server between your servers

To see them all, check out the exposition at http://django-mysql.readthedocs.org/en/latest/exposition.html .

Requirements

Tested with:

  • Python: 2.7, 3.3, 3.4

  • Django: 1.7, 1.8 RC

  • MySQL: 5.5, 5.6 / MariaDB: 5.5, 10.0, 10.1

  • mysqlclient: 1.3.5 (Python 3 compatible version of MySQL-python)

Any combination of these should be good, and also MySQL-python should work since it’s just an older version of mysqlclient.

History

0.1.9 (2015-04-20)

  • pt_visual_explain no longer executes the given query before fetching its EXPLAIN

  • New pt_fingerprint function that wraps the pt-fingerprint tool efficiently

  • For List fields, the new ListF class allows you to do atomic append or pop operations from either end of the list in a single query

  • For Set fields, the new SetF class allows you to do atomic add or remove operatiosn from the set in a single query

  • The @override_mysql_variables decorator has been introduced which makes testing code with different MySQL configurations easy

  • The is_mariadb property gets added onto Django’s MySQL connection class automatically

  • A race condition in determining the minimum and maximum primary key values for smart iteration was fixed.

0.1.8 (2015-03-31)

  • Add Set and List fields which can store comma-separated sets and lists of a base field with MySQL-specific lookups

  • Support MySQL’s GROUP_CONCAT as an aggregate!

  • Add a functions module with many MySQL-specific functions for the new Django 1.8 database functions feature

  • Allow access of the global and session status for the default connection from a lazy singleton, similar to Django’s connection object

  • Fix a different recursion error on count_tries_approx

0.1.7 (2015-03-25)

  • Renamed connection_name argument to using on Lock, GlobalStatus, and SessionStatus classes, for more consistency with Django.

  • Fix recursion error on QuerySetMixin when using count_tries_approx

0.1.6 (2015-03-21)

  • Added support for HANDLER statements as a QuerySet extension

  • Now tested on Django 1.8

  • Add pk_range argument for ‘smart iteration’ code

0.1.5 (2015-03-11)

  • Added manage.py command dbparams for outputting database paramters in formats useful for shell scripts

0.1.4 (2015-03-10)

  • Fix release process

0.1.3 (2015-03-08)

  • Added pt_visual_explain integration on QuerySet

  • Added soundex-based field lookups for the ORM

0.1.2 (2015-03-01)

  • Added get_many to GlobalStatus

  • Added wait_until_load_low to GlobalStatus which allows you to wait for any high load on your database server to dissipate.

  • Added smart iteration classes and methods for QuerySets that allow efficient iteration over very large sets of objects slice-by-slice.

0.1.1 (2015-02-23)

  • Added Model and QuerySet subclasses which add the approx_count method

0.1.0 (2015-02-12)

  • First release on PyPI

  • Locks

  • GlobalStatus and SessionStatus

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-mysql-0.1.9.tar.gz (75.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_mysql-0.1.9-py2.py3-none-any.whl (34.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file django-mysql-0.1.9.tar.gz.

File metadata

  • Download URL: django-mysql-0.1.9.tar.gz
  • Upload date:
  • Size: 75.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for django-mysql-0.1.9.tar.gz
Algorithm Hash digest
SHA256 5f9bc6b6c9ce1e78db90ffbb1b7f609968b93b0cf2f0d74eeed0a1c163f85b6b
MD5 f4671f5fc0f941e07ddc179ce8e73ac7
BLAKE2b-256 2107749b451489b1b537354b081f702249d66a6c731a00c42b3c027ac56d12c3

See more details on using hashes here.

File details

Details for the file django_mysql-0.1.9-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_mysql-0.1.9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 70e451ffe9285b9b55a87d9b7599bf7e13c11cf72eb2ebddcbc297aa40e00bdd
MD5 8b36f66f44d2dbbdc739145a3471b3cb
BLAKE2b-256 5eca4a18ce9806b97fc422df1c8c176f1e760a9f788b5fd0d7f7fdd9c7243f75

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page