仅数据 django 迁移的提取工具
项目描述
django-数据迁移
多年来开发和维护一个 django 项目可能会开始成为一项与耗时任务的持续斗争,包括执行测试套件、重新创建本地环境或在新环境中设置项目。
由于不同的部署风格和/或在同一工作环境中的不同方法,长期运行的 django 应用程序的迁移文件往往会变得臃肿并包含不必要的代码。当时实施的目的是移动、编辑、复制或基本上修改数据。而且它背后的想法也很巧妙。
通过这种方法,您可以在开始更新的应用程序代码之前触发叶迁移的迁移。
Missing migration?
/ \
yes, migrate no, continue
\ /
restart app with new code
但另一方面,您在已经巨大的迁移图中创建了一个新节点。
这就是django-data-migration出现的地方。它是常规迁移的直接替代品,不需要迁移树中的专用节点。
安装
安装包:
pip install django-data-migrations
在 Django 设置中配置包:
INSTALLED_APPS = [
# django apps
'data_migration',
# your apps
]
配置
该软件包可使用
DATA_MIGRATION = {}
环境。
当前支持的属性:
SQUASHABLE_APPS:允许压缩的应用程序(-label)名称列表,您应该只在此处提供您自己的应用程序
用法
扩展管理命令: - makemigrations - migrate - squashmigrations - data_migrate
移民
# 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
makemigrations命令生成一个文件 [app_name]/ data_migrations /[id]_[name].py,其内容如下
class Node:
name = '0001_first'
dependencies = ()
migration_dependencies = ('testapp.0001_initial', )
routines = [
]
迁移
# 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
壁球移民
应用程序压缩数据/定期迁移。
# 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
数据迁移
扩展挤压。允许一次压缩单个应用程序、应用程序列表或所有应用程序。
# squash and replace all migrations at once
./manage.py data_migrate --all
# squash and replace migrations app-wise
./manage.py data_migrate test_app
发展
要开发包,请使用提供的./dev-requirements.txt文件进一步设置本地环境。
运行测试套件并生成覆盖率报告运行
coverage run -m pytest -v tests
coverage [html|report]
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
django-data-migrations-0.1.2.tar.gz
(15.2 kB
查看哈希)
内置分布
关
django_data_migrations -0.1.2-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 67d6fd781a5565fffeba9ca878b143277541af1f5f17035ee424727d6320e440 |
|
| MD5 | 433fa3fa3cb4a92b0a5fdfcd50f347ac |
|
| 布莱克2-256 | 5494afafcf97819b3e002a01f77069aff2ebfd74e02880fbba3f60b5d502a020 |