Skip to main content

轻松监控数据库使用情况 - 并清理它(基于您的 django 模型)

项目描述

django-dbcleanup

轻松监控数据库使用情况 - 并清理它(基于您的 django 模型)

这个可插拔的应用程序提供:

  • 查看模型的数据库磁盘空间使用情况
  • 删除未使用的表并恢复磁盘空间的命令
  • 从具有任何 DateTimeField(可在项目 settings.py 中配置)的模型中删除历史数据

用法

模型和管理视图

dbcleanup.Table是映射到 MySQL 和 PostgreSQL 中的信息表并添加到 django admin 的非托管模型

图片

命令

dbcleanup是可用于(或计划)删除未使用的管理命令

$ ./manage.py dbcleanup -h
usage: manage.py dbcleanup [-h] [-f] [-i] [-j {tables,history,analyze,migrations}] [--no-fk] [--version] [-v {0,1,2,3}] [--settings SETTINGS] [--pythonpath PYTHONPATH] [--traceback] [--no-color]
                           [--force-color] [--skip-checks]

Remove database tables that do not map to any models, such as when a django app is removed/disabled.

optional arguments:
  -h, --help            show this help message and exit
  -f, --force           Delete the items (instead of just listing them)
  -i, --interactive     Ask which items to delete, interactively
  -j {tables,history,analyze,migrations}, --just {tables,history,analyze,migrations}
                        Perform only a subset of actions
  --no-fk               Disable FOREIGNKEY_CHECK when DROPping tables - CAREFUL! use only if you are sure the constraints are not from a table in use (ie: circular dependencies between drop candidates)

需要使用--force--interactive实际执行更改,否则将是空运行。
涵盖的行动是:

  • tables:删除不映射到任何模型的数据库表(即:当从项目中删除应用程序时,没有删除表的迁移) - 用于settings.DBCLEANUP_REQUIRED_TABLES将否则将被删除的表列入白名单
  • history:删除定义的模型的旧记录settings.DBCLEANUP_HISTORY_MODELS(更多见下文)
  • analyze:仅适用于 MySQL - 对所有表强制分析以更新行数和大小估计
  • migrations:删除django_migrations不在项目迁移路径中的迁移(从表中)(即:迁移压缩和重置后)

历史数据

settings.DBCLEANUP_HISTORY_MODELS是一个元组列表,其中每个元组是(MODEL_NAME, DAYS_TO_KEEP, DATE_TIME_FIELD_NAME).

# someproject/settings.py
DBCLEANUP_HISTORY_MODELS = [
    ('notifications.notification', 365, 'time'),
    ...
]

使用此设置,当./manage.py dbcleanup -j history执行时,所有超过 365 天的notifications.Notification条目都将被删除。 如果将级联到其他模型,则跳过历史清理(除非它是多表模型并且将级联到父模型)。time

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

django-dbcleanup-0.1.2.tar.gz (10.7 kB 查看哈希)

已上传 source

内置分布

django_dbcleanup-0.1.2-py3-none-any.whl (11.1 kB 查看哈希)

已上传 py3