python 手动同步mysql表结构脚本

    xiaoxiao2021-03-25  98

    经常研发忘记提交数据库更新脚本,写了手动脚本同步,输入表名和列名即可把研发新增的列同步到测试库

    #!/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb class Addcolumn(): #从研发环境查询列的类型和长度 def querycolumn(self, colnum, tablename,dbname): queryc = MySQLdb.connect( host='192.168.20.151', port=3306, user='root', passwd='111111', db='information_schema', ) curl = queryc.cursor() curl.execute("SELECT COLUMN_TYPE from columns where table_name="+"'"+tablename+"'"+"and COLUMN_NAME=" +"'"+ colnum +"'"+ "and TABLE_SCHEMA="+"'"+dbname+"'") result = curl.fetchone(); return result #拼接生成执行的SQL语句 def addc(self): tablename = raw_input("Enter tablename: ") column = raw_input("Enter column: ") result=self.querycolumn(column, tablename, 'zlax_business') type = result[0] #length = result[1] #length=bytes(length) type = bytes(type) #print 'ALTER TABLE '+tablename+' ADD COLUMN '+column+' '+type+';' return 'ALTER TABLE '+tablename+' ADD COLUMN '+column+' '+type+';' #执行更新语句到测试库 def conn(self,sqlstr): conn = MySQLdb.connect( host='192.168.20.155', port=3306, user='test', passwd='test123', db='zlax_test', ) cur = conn.cursor() cur.execute(sqlstr) #写SQL更新语句到文件中 def writelog(self,filename): logconent=self.addc() file_object = open(filename, 'a') file_object.write(logconent) file_object.close() return logconent if __name__=="__main__": a=Addcolumn() sqlstr = a.writelog('E://update_sql0310..txt') a.conn(sqlstr)

    转载请注明原文地址: https://ju.6miu.com/read-20451.html

    最新回复(0)