mysql导入功能

pull/224/head
midoks 3 years ago
parent c417b02844
commit a211746de7
  1. 2
      class/core/config_api.py
  2. 97
      plugins/mysql/index.py
  3. 6
      route/static/app/files.js
  4. 2
      route/static/app/upload.js
  5. 2
      route/templates/default/files.html
  6. 2
      route/templates/default/layout.html

@ -15,7 +15,7 @@ from flask import request
class config_api:
__version = '0.10.0.1'
__version = '0.10.0.2'
def __init__(self):
pass

@ -827,6 +827,56 @@ def setDbBackup():
return mw.returnJson(True, 'ok')
def importDbExternal():
args = getArgs()
data = checkArgs(args, ['file', 'name'])
if not data[0]:
return data[1]
file = args['file']
name = args['name']
import_dir = mw.getRootDir() + '/backup/import/'
file_path = import_dir + file
if not os.path.exists(file_path):
return mw.returnJson(False, '文件突然消失?')
import_sql = ""
if file.find("sql.gz") > -1:
cmd = 'cd ' + import_dir + ' && gzip -dc ' + \
file + " > " + import_dir + "tmp.sql"
info = mw.execShell(cmd)
if info[1] == "":
import_sql = import_dir + "tmp.sql"
if file.find(".zip") > -1:
cmd = 'cd ' + import_dir + ' && unzip ' + file
mw.execShell(cmd)
if file.find("tar.gz") > -1:
cmd = 'cd ' + import_dir + ' && tar -zxvf ' + file
mw.execShell(cmd)
if import_sql == "":
cmd = 'cd ' + import_dir + ' && ls && grep ".sql$"'
sql_name = mw.execShell(cmd)
import_sql = import_dir + sql_name[0]
if import_sql == "":
return mw.returnJson(False, '未找SQL文件')
pwd = pSqliteDb('config').where('id=?', (1,)).getField('mysql_root')
sock = getSocketFile()
mysql_cmd = getServerDir() + '/bin/mysql -S ' + sock + ' -uroot -p' + \
pwd + ' ' + name + ' < ' + import_sql
os.system(mysql_cmd)
os.remove(import_sql)
return mw.returnJson(True, 'ok')
def importDbBackup():
args = getArgs()
data = checkArgs(args, ['file', 'name'])
@ -855,13 +905,17 @@ def importDbBackup():
def deleteDbBackup():
args = getArgs()
data = checkArgs(args, ['filename'])
data = checkArgs(args, ['filename', 'path'])
if not data[0]:
return data[1]
path = args['path']
full_file = ""
bkDir = mw.getRootDir() + '/backup/database'
os.remove(bkDir + '/' + args['filename'])
full_file = bkDir + '/' + args['filename']
if path != "":
full_file = path + "/" + args['filename']
os.remove(full_file)
return mw.returnJson(True, 'ok')
@ -893,6 +947,39 @@ def getDbBackupList():
return mw.returnJson(True, 'ok', rr)
def getDbBackupImportList():
bkImportDir = mw.getRootDir() + '/backup/import'
if not os.path.exists(bkImportDir):
os.mkdir(bkImportDir)
blist = os.listdir(bkImportDir)
rr = []
for x in range(0, len(blist)):
name = blist[x]
p = bkImportDir + '/' + name
data = {}
data['name'] = name
rsize = os.path.getsize(p)
data['size'] = mw.toSize(rsize)
t = os.path.getctime(p)
t = time.localtime(t)
data['time'] = time.strftime('%Y-%m-%d %H:%M:%S', t)
rr.append(data)
data['file'] = p
rdata = {
"list": rr,
"upload_dir": bkImportDir,
}
return mw.returnJson(True, 'ok', rdata)
def getDbList():
args = getArgs()
page = 1
@ -2427,10 +2514,14 @@ if __name__ == "__main__":
print(setDbBackup())
elif func == 'import_db_backup':
print(importDbBackup())
elif func == 'import_db_external':
print(importDbExternal())
elif func == 'delete_db_backup':
print(deleteDbBackup())
elif func == 'get_db_backup_list':
print(getDbBackupList())
elif func == 'get_db_backup_import_list':
print(getDbBackupImportList())
elif func == 'add_db':
print(addDb())
elif func == 'del_db':

@ -1323,7 +1323,8 @@ function uploadFiles(){
title:lan.files.up_title,
area: ['500px','300px'],
shadeClose:false,
content:'<div class="fileUploadDiv"><input type="hidden" id="input-val" value="'+path+'" />\
content:'<div class="fileUploadDiv">\
<input type="hidden" id="input-val" value="'+path+'" />\
<input type="file" id="file_input" multiple="true" autocomplete="off" />\
<button type="button" id="opt" autocomplete="off">添加文件</button>\
<button type="button" id="up" autocomplete="off" >开始上传</button>\
@ -1337,7 +1338,8 @@ function uploadFiles(){
</select>\
</span>\
<button type="button" id="filesClose" autocomplete="off" onClick="layer.closeAll()" >关闭</button>\
<ul id="up_box"></ul></div>'
<ul id="up_box"></ul>\
</div>'
});
uploadStart();
}

@ -200,6 +200,8 @@ function uploadStart(d) {
}
if(!d) {
getFiles(getCookie("open_dir_path"));
} else{
d();
}
},
error: function(j) {

@ -57,8 +57,6 @@
<script src="/static/js/jquery-ui.min.js?v={{config.version}}"></script>
<script src="/static/js/jquery.contextify.min.js?v={{config.version}}"></script>
<script src="/static/app/files.js?v={{config.version}}"></script>
<script src="/static/app/upload.js?v={{config.version}}"></script>
<script type="text/javascript">
setTimeout(function() {

@ -62,6 +62,8 @@
<script src="/static/js/socket.io.min.js?v={{config.version}}"></script>
<script src="/static/build/addons/winptyCompat/winptyCompat.js?v={{config.version}}"></script>
<script src="/static/app/public.js?v={{config.version}}"></script>
<script src="/static/app/upload.js?v={{config.version}}"></script>
<script src="/static/app/files.js?v={{config.version}}"></script>
<script src="/static/js/echarts.min.js?v={{config.version}}"></script>
<script src="/static/js/jquery.dragsort-0.5.2.min.js?v={{config.version}}"></script>

Loading…
Cancel
Save