手动升级/降级 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 脚本。