我们最近安装了一个专门用于部署测试的服务器 提交完成后,通过Jenkins自动更新,然后发送 发现回归时发送邮件
> 这要求我们的数据库始终是最新的由于数据库模式引用是我们的MWB,我们添加了一些脚本 在部署期间,将.mwb导出到.sql(使用python)这个 工作得很好......但仍有一些问题
我们主要担心的是附加到架构的功能根本不会导出,这会导致数据库无法使用。
我们想破解python代码以使其导出脚本...但是没有找到关于它的足够信息。 这是我们找到的documentation中唯一的一部分。这对我们来说不太清楚。我们没有找到有关导出脚本的任何信息。 我们发现只有db_Script类存在。我们不知道 where 我们可以在执行上下文中找到它的实例,也不知道它们可以轻松导出。我们错过了什么吗?
作为参考,这是我们目前用于mwb到sql转换的脚本(mwb2sql.sh)。
它从命令行调用MySqlWorkbench(我们使用虚拟x-server来刷新图形输出。)
我们需要完成的是在我们的工作台命令行调用中传递的python部分。
# generate sql from mwb
# usage: sh mwb2sql.sh {mwb file} {output file}
# prepare: set env MYSQL_WORKBENCH
if [ "$MYSQL_WORKBENCH" = "" ]; then
export MYSQL_WORKBENCH="/usr/bin/mysql-workbench"
fi
export INPUT=$(cd $(dirname $1);pwd)/$(basename $1)
export OUTPUT=$(cd $(dirname $2);pwd)/$(basename $2)
"$MYSQL_WORKBENCH" \
--open $INPUT \
--run-python "
import os
import grt
from grt.modules import DbMySQLFE as fe
c = grt.root.wb.doc.physicalModels[0].catalog
fe.generateSQLCreateStatements(c, c.version, {})
fe.createScriptForCatalogObjects(os.getenv('OUTPUT'), c, {})" \
--quit-when-done
set -e