因为Temporal的数据库是通过命令行创建的,所以需要准备一个临时的数据库,用来保存Temporal命令行创建的表数据
git clone GitHub - temporalio/temporal: Temporal service
编译程序:make
或直接下载官方预编译的包也可以,参考:Releases · temporalio/temporal · GitHub
下载后,注意解压到Temporal源码的根目录,下面会用到
【docker方式,推荐】
GitHub - temporalio/docker-compose: Temporal docker-compose files
进入下载好的Temporal项目代码,在根目录创建文件:create_db.sh
./temporal-sql-tool -u root --pw root drop --db temporal -f
./temporal-sql-tool -u root --pw root create --db temporal
./temporal-sql-tool -u root --pw root --db temporal setup-schema -v 0.0
./temporal-sql-tool -u root --pw root --db temporal update-schema -d ./schema/mysql/v57/temporal/versioned
./temporal-sql-tool -u root --pw root drop --db temporal_visibility -f
./temporal-sql-tool -u root --pw root create --db temporal_visibility
./temporal-sql-tool -u root --pw root --db temporal_visibility setup-schema -v 0.0
./temporal-sql-tool -u root --pw root --db temporal_visibility update-schema -d ./schema/mysql/v57/visibility/versioned
⚠️ 如果只是本地部署,不需要进行下面的 步骤4和步骤5
mysqldump -uroot -proot --databases temporal > temporal.sql
mysqldump -uroot -proot --databases temporal_visibility > temporal_visibility.sql
过滤建表语句
cat temporal.sql|grep -v DROP|grep -v '\-\-'|grep -v '/\*!'|grep -v LOCK|grep -v INSERT
过滤插入语句
cat temporal.sql|grep -v DROP|grep -v '\-\-'|grep -v '/\*!'|grep -v LOCK|grep INSERT
将建表语句,通过DDBS的SQL评审,创建表
建表后,并将之前过滤的插入语句,也同步到线上
在Temporal的根目录
检查文件:config/development.yaml,确保数据库等配置正确
启动Server:./temporal-server -zone mysql start