ironic-dbsync¶
ironic-dbsync 工具用于创建 ironic 服务将用于存储的数据库模式表。它也可以在不同版本的 ironic 之间迁移时用于升级现有的数据库表。
Alembic 库 用于执行数据库迁移。
选项¶
以下是其中一些最有用的选项的列表。要查看完整列表,请运行以下命令
ironic-dbsync --help
- -h, --help¶
显示帮助信息并退出。
- --config-dir <DIR>¶
包含配置文件目录的路径。
- --config-file <PATH>¶
要使用的配置文件的路径。
- -d, --debug¶
打印调试输出。
- --version¶
显示程序的版本号并退出。
用法¶
ironic-dbsync 的各种 命令 的选项在命令之后使用 -h 或 --help 选项时列出。
例如
ironic-dbsync create_schema --help
数据库信息从 API 服务器和 conductor 服务使用的 ironic 配置文件中读取。必须使用 --config-file 选项指定此文件
ironic-dbsync --config-file /path/to/ironic.conf create_schema
配置文件定义了使用 connection 数据库选项使用的数据库后端
[database]
connection=mysql+pymysql://root@localhost/ironic
如果未通过 --config-file 选项指定配置文件,ironic-dbsync 假定 SQLite 数据库。
命令选项¶
ironic-dbsync 收到一个命令,告诉该工具要执行哪些操作。这些命令可以接受参数。有几个命令可用
create_schema¶
- -h, --help¶
显示 create_schema 的帮助并退出。
此命令将基于最新版本创建数据库表。它假定不存在现有表。
创建数据库表的示例,使用最新版本
ironic-dbsync --config-file=/etc/ironic/ironic.conf create_schema
online_data_migrations¶
- -h, --help¶
显示 online_data_migrations 的帮助并退出。
- --max-count <NUMBER>¶
要迁移的最大对象数(正值)。可选。如果未指定,将迁移所有对象(分批进行 50 个,以避免长时间锁定数据库)。
- --option <MIGRATION.KEY=VALUE>¶
如果迁移接受其他参数,可以通过此参数传递它们。可以多次指定它。
此命令将迁移数据库中的对象到其最新版本。在升级到未来版本之前,必须成功运行此命令(返回码 0)。
它返回
1(未完成),如果仍有待迁移的对象。在升级到较新版本之前,必须运行此命令,直到返回 0。
0(成功),迁移完成后或没有要迁移的数据
127(错误),如果 max-count 不是正值或选项无效
2(错误),如果数据库与此版本不兼容。需要使用 ironic 的先前版本运行此命令,然后再升级并使用此版本运行它。
revision¶
- -h, --help¶
显示 revision 的帮助并退出。
- -m <MESSAGE>, --message <MESSAGE>¶
要与修订文件一起使用的消息。
- --autogenerate¶
比较应用程序中的表元数据与数据库的状态,并基于此比较生成迁移。
此命令将创建一个新的修订文件。可以使用 --message 选项来注释修订。
这对于进行需要数据库更改的 ironic 开发人员来说才真正有用。此修订文件在数据库迁移期间使用,并将指定需要对数据库表进行的更改。进一步讨论超出了本文档的范围。
stamp¶
- -h, --help¶
显示 stamp 的帮助并退出。
- --revision <REVISION>¶
修订号。
此命令将使用 --revision 选项指定的版本“标记”修订表。它不会运行任何迁移。
upgrade¶
- -h, --help¶
显示 upgrade 的帮助并退出。
- --revision <REVISION>¶
要升级到的修订号。
此命令将升级现有的数据库表到最新版本,或升级到使用 --revision 选项指定的版本。
在调用此 upgrade 之前,必须使用 ironic 的先前版本成功运行命令 ironic-dbsync online_data_migrations(如果您正在进行升级而不是 ironic 的全新安装)。如果未运行它,数据库将与此最新版本的 ironic 不兼容,并且此命令将返回 2(错误)。
如果不存在现有表,则将创建新表,从最旧的已知版本开始,并使用所有数据库迁移文件逐步升级,直到达到指定的版本。请注意,此行为与 create_schema 命令不同,后者基于最新版本创建表。
升级到最新表版本的示例
ironic-dbsync --config-file=/etc/ironic/ironic.conf upgrade
注意
如果未向 ironic-dbsync 提供命令,则此命令是默认命令。
警告
升级命令与 SQLite 数据库不兼容,因为它使用 ALTER TABLE 命令来升级数据库表。SQLite 仅支持有限的 ALTER TABLE 子集。
version¶
- -h, --help¶
显示 version 的帮助并退出。
此命令将输出当前数据库版本。