最近工作中,遇到一个问题。每次升级包的时候,需要重置数据中一些数据,于是我每次都要连接数据库,然后手写sql执行,很麻烦。于是就有了下面的脚本可以,这样就可以一键重置数据库了。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import MySQLdb
db = MySQLdb.connect("localhost", "root", "root", "TESTDB", charset='utf8')
# 获取游标
cursor = db.cursor()

# SQL语句 
sqls = ['delete from TAB1',
        'delete from TAB2',
        'delete from TAB3',
        'INSERT INTO  TAB4(ID, HOST_ID, STATUS) VALUES(1, "127.0.0.1", 4)']

try:
    # 执行SQL
    for sql in sqls:
        cursor.execute(sql)
    # 提交
    db.commit()
except:
    # 异常时回滚
    db.rollback()

# 关闭连接
db.close()

同样,使用shell脚本也可以, 这也是我首先想到的方案,可是python比起来总觉得少那么点美感

#!/bin/bash
HOSTNAME="127.0.0.1" 
PORT="3306"
USERNAME="root"
PASSWORD="root"
DBNAME="TESTDB"

sql="delete from TAB1"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD}  ${DBNAME}  -e "${sql}"

sql="delete from TAB2"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD}  ${DBNAME}  -e "${sql}"
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐