scripts: Transfer users between mongodb and MySQL
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
parent
9e3236f593
commit
20b6677f8b
|
@ -0,0 +1,47 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__) + '/' + '..'))
|
||||||
|
|
||||||
|
from ffmap.mysqltools import FreifunkMySQL
|
||||||
|
|
||||||
|
import pymongo
|
||||||
|
from bson.json_util import dumps as bson2json
|
||||||
|
from bson.objectid import ObjectId
|
||||||
|
import base64
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
import csv
|
||||||
|
|
||||||
|
targetfile = "/data/fff/users.txt"
|
||||||
|
|
||||||
|
mysql = FreifunkMySQL()
|
||||||
|
data = []
|
||||||
|
with open(targetfile, newline='') as csvfile:
|
||||||
|
spamreader = csv.reader(csvfile, delimiter=';')
|
||||||
|
for row in spamreader:
|
||||||
|
if row[5]=="None":
|
||||||
|
row[5]=None
|
||||||
|
if row[1]=="None":
|
||||||
|
row[1]=None
|
||||||
|
if row[1]=="None":
|
||||||
|
row[1]=None
|
||||||
|
if row[2]=="None":
|
||||||
|
row[2]=None
|
||||||
|
if row[3]=="None":
|
||||||
|
row[3]=None
|
||||||
|
if row[4]=="True":
|
||||||
|
row[4]=1
|
||||||
|
else:
|
||||||
|
row[4]=0
|
||||||
|
row[3] = datetime.datetime.strptime(''.join(row[3].rsplit(':', 1)),"%Y-%m-%d %H:%M:%S.%f%z").strftime('%Y-%m-%d %H:%M:%S')
|
||||||
|
|
||||||
|
data.append((row[0],row[5],row[1],row[2],row[3],row[4],))
|
||||||
|
|
||||||
|
mysql.executemany("""
|
||||||
|
INSERT INTO users (nickname, password, token, email, created, admin)
|
||||||
|
VALUES (%s, %s, %s, %s, %s, %s)
|
||||||
|
""",data)
|
||||||
|
mysql.commit()
|
||||||
|
mysql.close()
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__) + '/' + '..'))
|
||||||
|
|
||||||
|
from pymongo import MongoClient
|
||||||
|
from bson.json_util import dumps as bson2json
|
||||||
|
from bson.objectid import ObjectId
|
||||||
|
import base64
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
targetfile = "/data/fff/users.txt"
|
||||||
|
|
||||||
|
client = MongoClient(tz_aware=True, connect=False)
|
||||||
|
db = client.freifunk
|
||||||
|
|
||||||
|
users = db.users.find({}, {"nickname": 1, "password":1, "email": 1, "token": 1, "created": 1, "admin": 1})
|
||||||
|
|
||||||
|
with open(targetfile, "wb") as csv:
|
||||||
|
for u in users:
|
||||||
|
str = "%s;%s;%s;%s;%s;%s\n" % (u.get("nickname"),u.get("token"),u.get("email",""),u.get("created"),u.get("admin",0),u.get("password"))
|
||||||
|
csv.write(str.encode("UTF-8"))
|
Loading…
Reference in New Issue