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