手动升级/降级 StoryBoard 实例

如果您有一个手动部署的 StoryBoard 实例,例如用于开发的本地服务器,您有时可能需要升级数据库,因为新的更改被合并到上游。

同样,您可能希望为了测试目的回滚更改。本指南将解释如何使用 storyboard-db-manage 工具来升级和降级您的数据库模式。

如果使用 tox,本指南中的所有命令都应作为

$ tox -e venv -- $command

您可能会发现需要将 sudo 前置到此命令。

检查当前版本

如果您不知道您的数据库当前版本是什么,可以使用

$ storyboard-db-manage --config-file /path/to/storyboard.conf current

升级数据库

如果您的现有数据库版本当前 < 049,建议您使用 storyboard 仓库的提交 acce431b30a32497064ad6d1ab3872358e1e60dc 运行升级命令,因为在那之后,迁移被整合,将不再适用于版本早于 049 的现有数据库。

您可以使用以下命令就地升级到最新数据库版本

$ storyboard-db-manage --config-file /path/to/storyboard.conf upgrade head

head 替换此命令中的内容,可以指定目标版本。例如,此命令将升级到版本 055

$ storyboard-db-manage --config-file /path/to/storyboard.conf upgrade 055

也可以创建 sql 脚本以离线升级数据库

$ storyboard-db-manage --config-file /path/to/storyboard.conf upgrade head --sql

此外,您可以使用以下命令生成用于在两个版本之间升级的脚本

$ storyboard-db-manage --config-file /path/to/storyboard.conf \
    upgrade <start version>:<end version> --sql

您还可以通过指定要应用的修订次数来增量升级数据库

$ storyboard-db-manage --config-file /path/to/storyboard.conf \
    upgrade --delta <# of revs>

降级数据库

如果您需要降级到版本 > 001 且 < 049,您需要先降级到版本 049,然后使用提交 acce431b30a32497064ad6d1ab3872358e1e60dc 进一步降级到您需要的版本。在此提交之后,低于 049 的迁移被整合,不能单独使用。

按一定数量的修订次数降级数据库

$ storyboard-db-manage --config-file /path/to/storyboard.conf \
    downgrade --delta <# of revs>

您也可以降级到特定版本

$ storyboard-db-manage --config-file /path/to/storyboard.conf downgrade 055

与升级类似,您可以使用 --sql 标志生成稍后应用的 sql 脚本。