数据库自动化平台archery配置TiDB导致工单无法执行

在数据库自动化平台,可以添加很多类型数据库,mysql,oracle,redis,SqlServer,TiDB等

但是,TiDB添加完,提交工单后,在执行工单时,会提示read_only=1的问题:

实例read_only=1,禁止执行变更语句!

解决方法如下:

方法一:

注释sql/engines/mysql.py 以下语句,然后重启服务和Django-Q

复制代码
def execute_workflow(self, workflow):
"""执行上线单,返回Review set"""
# 判断实例是否只读
#read_only = self.query(sql='select @@read_only;').rows[0][0]
#if read_only:
# result = ReviewSet(
# full_sql=workflow.sqlworkflowcontent.sql_content,
# rows=[ReviewResult(id=1, errlevel=2,
# stagestatus='Execute Failed',
# errormessage='实例read_only=1,禁止执行变更语句!',
# sql=workflow.sqlworkflowcontent.sql_content)])
# result.error = '实例read_only=1,禁止执行变更语句!',
# return result
复制代码

方法二:

修改sql/engines/mysql.py,添加三行加粗代码,下面代码记得缩进:

复制代码
def execute_workflow(self, workflow):
        """执行上线单,返回Review set"""
        db_version = self.query(sql='select @@version;').rows[0][0]   # 查看数据库版本
        db_version_check = re.search("TiDB",db_version)               # 数据库版本为TiDB
        if not db_version_check:                                      # 判断如果数据库版本不是TiDB,执行下面read_only检查
        # 判断实例是否只读
            read_only = self.query(sql='select @@read_only;').rows[0][0]
            if read_only:
                result = ReviewSet(
                    full_sql=workflow.sqlworkflowcontent.sql_content,
                    rows=[ReviewResult(id=1, errlevel=2,
                                       stagestatus='Execute Failed',
                                       errormessage='实例read_only=1,禁止执行变更语句!',
                                       sql=workflow.sqlworkflowcontent.sql_content)])
                result.error = '实例read_only=1,禁止执行变更语句!',
                return result
复制代码

重启Django-Q如下:

kill supervisord,gunicorn,manage:

ps -ef | grep supervisord | grep -v grep | awk -F ' ' '{print $2}' | xargs kill -9

ps -ef | grep gunicorn | grep -v grep | awk -F ' ' '{print $2}' | xargs kill -9

ps -ef | grep manage | grep -v grep | awk -F ' ' '{print $2}' | xargs kill -9

到venv4archery目录下,执行source,并启动Django:

复制代码
[root@hankyoon venv4archery]# pwd
/data/apps/archery/venv4archery

[root@hankyoon venv4archery]# source bin/activate

[root@hankyoon venv4archery]# pwd
/data/apps/archery

[root@hankyoon venv4archery]# ./startup.sh
复制代码

重启inception:

su - archery
cd /data/apps/inception && ./bin/Inception --defaults-file=./etc/in.cnf &

 

posted @   __Yoon  阅读(394)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
历史上的今天:
2016-04-19 mysqldump流程
点击右上角即可分享
微信分享提示