网络编程
位置:首页>> 网络编程>> 数据库>> Python 如何实现数据库表结构同步

Python 如何实现数据库表结构同步

作者:Wu_Candy  发布时间:2024-01-21 16:38:44 

标签:python,数据库,表,结构同步

近日,某个QQ 群里的一个朋友提出一个问题,如何将一个DB 的表结构同步给另一个DB。
针对这个问题,我进行了思考与实践,具体的实现代码如下所示:


# coding:utf-8
import pymysql

dbDict = {"test1":"l-beta.test1"}
dbUser = "test"
dbPassword = "123456"

class DBUtils():
 def __init__(self):
   self.conn = pymysql.connect(dbDict['test1'], dbUser, dbPassword)
   self.cursor = self.conn.cursor()

def dbSelect(self, sql):
   print("------------------------------------")
   print(sql)
   resultList = []
   self.cursor.execute(sql)
   result = self.cursor.fetchall()
   columns = self.cursor.description
   for val in result:
     tempDict = {}
     for cloNum in range(len(columns)):
       tempDict[str(columns[cloNum][0])] = val[cloNum]
     resultList.append(tempDict)
   print("---------------------打印查询结果----------------------")
   print(resultList)
   self.dbClose()
   return resultList

def dbExcute(self, sql):
   print(sql)
   self.cursor.execute(sql)
   self.dbClose()

def dbClose(self):
   self.conn.commit()
   self.cursor.close()
   self.conn.close()

if __name__ == "__main__":
 test = DBUtils()
 result = test.dbSelect("select table_name from information_schema.tables where table_schema='testdb1'")
 for dict1 in result:
   test = DBUtils()
   create_table_sql = "create table testdb.%s as select * from testdb1.%s" % (dict1['table_name'],dict1['table_name'])
   print(create_table_sql)
   test.dbExcute(create_table_sql)

示例代码操作简单,通俗易懂,所以没有过多的注释,如有疑问的小伙伴们,可在文章下方评论。

来源:https://www.cnblogs.com/Wu13241454771/p/13613658.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com