Extraction tool for data only django migrations
Project description
django-data-migration
Missing migration?
/ \
yes, migrate no, continue
\ /
restart app with new code
Installation
Install package:
INSTALLED_APPS = [
# django apps
'data_migration',
# your apps
]
Configuration
DATA_MIGRATION = {}
setting.
Currently supported attributes:
SQUASHABLE_APPS: a list of app(-label) names which allow squashing, you should only provide your own apps here
Usage
Extended management commands: - makemigrations - migrate - squashmigrations - data_migrate
makemigrations
# generate data migration file
./manage.py makemigrations --data-only [app_name]
# generate data migration file with readable name "name_change"
./manage.py makemigrations --data-only [app_name] name_change
# generate empty file
./manage.py makemigrations --data-only [app_name] --empty
# generate without fileheader
./manage.py makemigrations --data-only [app_name] --no-header
The makemigrations command generates a file [app_name]/data_migrations/[id]_[name].py with content like
class Node:
name = '0001_first'
dependencies = ()
migration_dependencies = ('testapp.0001_initial', )
routines = [
]
migrate
# apply data migration file
./manage.py migrate --data-only
# revert complete data migration state
./manage.py migrate --data-only zero
# revert partial data migration state
./manage.py migrate --data-only 0002_some_big_change
squashmigrations
# regular squashing of test_app migrations 0001-0015
./manage.py squashmigrations test_app 0001 0015
# squash and replace test_app migrations 0001-0015 and extract data_migrations
./manage.py squashmigrations --extract-data-migrations test_app 0001 0015
data_migrate
# squash and replace all migrations at once
./manage.py data_migrate --all
# squash and replace migrations app-wise
./manage.py data_migrate test_app
Development
To develop the package further set up a local environment using the provided ./dev-requirements.txt file.
To run the test suite and generate a coverage report run
coverage run -m pytest -v tests
coverage [html|report]
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
Built Distribution
File details
Details for the file django-data-migrations-0.1.5.tar.gz
.
File metadata
- Download URL: django-data-migrations-0.1.5.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 246cd037d2d19b83c6a2da7e5207eeeec8a139a0e70b6b9ba54bc9cdf38f0a8a |
|
MD5 | 781aef7d6df00c128a29bddad8e27d87 |
|
BLAKE2b-256 | 1ca4e36210c3f4c4b87dd5811f8edf73abd194df7020c91cc1ebad4dddebdeed |
File details
Details for the file django_data_migrations-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: django_data_migrations-0.1.5-py3-none-any.whl
- Upload date:
- Size: 19.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d97f18946ae69188155b7923c3396de88d2575dc17b99981746dbec8d52a5b18 |
|
MD5 | fedcfbce567576a977124cbc0003ca4b |
|
BLAKE2b-256 | 7094eb0dda3cae6955c083b9fb4219651d0eacea55937e5c94ea7d098f6ab7f0 |