watcher-db-manage¶
watcher-db-manage 工具用于创建 watcher 服务将用于存储的数据库模式表。它还可以用于在 watcher 的不同版本之间迁移时升级(或降级)现有的数据库表。
Alembic 库 用于执行数据库迁移。
选项¶
以下是其中一些最有用的选项的列表。要查看完整列表,请运行以下命令
watcher-db-manage --help
- -h, --help¶
显示帮助信息并退出。
- --config-dir <DIR>¶
包含配置文件目录的路径。
- --config-file <PATH>¶
要使用的配置文件的路径。
- -d, --debug¶
打印调试输出。
- -v, --verbose¶
打印更详细的输出。
- --version¶
显示程序的版本号并退出。
用法¶
watcher-db-manage 的各种 命令 的选项在使用命令后,通过 -h 或 --help 选项列出。
例如
watcher-db-manage create_schema --help
数据库信息从 API 服务器和 conductor 服务使用的 watcher 配置文件中读取。必须使用 --config-file 选项指定此文件
watcher-db-manage --config-file /path/to/watcher.conf create_schema
配置文件定义了使用 connection 数据库选项要使用的数据库后端
[database]
connection=mysql://root@localhost/watcher
如果未通过 --config-file 选项指定配置文件,watcher-db-manage 假定使用 SQLite 数据库。
命令选项¶
watcher-db-manage 接收到一个命令,告诉该工具要执行哪些操作。这些命令可以接受参数。有几个命令可用
create_schema¶
- -h, --help¶
显示 create_schema 的帮助并退出。
此命令将基于最新版本创建数据库表。它假定不存在现有表。
创建数据库表的示例,使用最新版本
watcher-db-manage --config-file=/etc/watcher/watcher.conf create_schema
downgrade¶
- -h, --help¶
显示 downgrade 的帮助并退出。
- --revision <REVISION>¶
要降级的修订号。
此命令会将现有的数据库表还原到以前的版本。可以使用 --revision 选项指定版本。
将表版本降级到修订号 2581ebaf0cb2 的示例
watcher-db-manage --config-file=/etc/watcher/watcher.conf downgrade --revision 2581ebaf0cb2
revision¶
- -h, --help¶
显示 revision 的帮助并退出。
- -m <MESSAGE>, --message <MESSAGE>¶
要与修订文件一起使用的消息。
- --autogenerate¶
比较应用程序中的表元数据与数据库的状态,并基于此比较生成迁移。
此命令将创建一个新的修订文件。可以使用 --message 选项来注释修订。
这对于进行需要数据库更改的 watcher 开发人员来说才真正有用。此修订文件在数据库迁移期间使用,并将指定需要对数据库表进行的更改。更深入的讨论超出了本文档的范围。
stamp¶
- -h, --help¶
显示 stamp 的帮助并退出。
- --revision <REVISION>¶
修订号。
此命令将使用 --revision 选项指定的版本“标记”修订表。它不会运行任何迁移。
upgrade¶
- -h, --help¶
显示 upgrade 的帮助并退出。
- --revision <REVISION>¶
要升级到的修订号。
此命令会将现有的数据库表升级到最新版本,或升级到使用 --revision 选项指定的版本。
如果不存在现有表,则将从最旧的已知版本开始创建新表,并使用所有数据库迁移文件逐步升级,直到达到指定的版本。请注意,此行为与基于最新版本创建表的 create_schema 命令不同。
将表升级到最新版本的示例
watcher-db-manage --config-file=/etc/watcher/watcher.conf upgrade
注意
如果未向 watcher-db-manage 提供命令,则此命令是默认命令。
警告
升级命令与 SQLite 数据库不兼容,因为它使用 ALTER TABLE 命令来升级数据库表。SQLite 仅支持有限的 ALTER TABLE 子集。
version¶
- -h, --help¶
显示 version 的帮助并退出。
此命令将输出当前数据库版本。
purge¶
- -h, --help¶
显示 purge 的帮助并退出。
- -d, --age-in-days¶
从今天开始,在此天数之前,我们将认为软删除的对象已过期并应被删除。默认情况下,所有软删除的对象都被认为已过期。这可能很有用,因为删除大量对象可能会导致性能问题。
- -n, --max-number¶
我们期望删除的最大数据库对象数。如果超过此限制,将阻止任何删除。
- -t, --goal¶
要清除的目标的 UUID 或名称。
- -e, --exclude-orphans¶
这是一个标志,指示我们是否要从删除中排除孤立对象。
- --dry-run¶
这是一个标志,指示我们是否要执行试运行。这将显示将被删除的对象,而不是实际删除它们。
此命令将清除当前数据库,删除其软删除和孤立对象。