Tomas 'Jethro' Pokorny
4 years ago
1 changed files with 58 additions and 0 deletions
@ -0,0 +1,58 @@ |
|||||
|
#!/usr/bin/python3 |
||||
|
|
||||
|
import psycopg2 |
||||
|
import psycopg2.extras |
||||
|
|
||||
|
OLD_DB = "mam_old" |
||||
|
NEW_DB = "mamweb" |
||||
|
|
||||
|
oldconn = psycopg2.connect(f"dbname={OLD_DB}") |
||||
|
newconn = psycopg2.connect(f"dbname={NEW_DB}") |
||||
|
|
||||
|
oldcur = oldconn.cursor(cursor_factory=psycopg2.extras.DictCursor) |
||||
|
newcur = newconn.cursor(cursor_factory=psycopg2.extras.DictCursor) |
||||
|
|
||||
|
|
||||
|
# Uses global variables oldcur, newcur! |
||||
|
def execute_simple(old_query, new_query=None): |
||||
|
if new_query is None: |
||||
|
new_query = old_query |
||||
|
|
||||
|
oldcur.execute(old_query) |
||||
|
newcur.execute(new_query) |
||||
|
|
||||
|
if oldcur.rowcount != newcur.rowcount: |
||||
|
raise ValueError(f"Queries '{old_query}' and '{new_query}' returned different number of rows ({oldcur.rowcount} and {newcur.rowcount})") |
||||
|
|
||||
|
return(oldcur.fetchall(), newcur.fetchall()) |
||||
|
|
||||
|
def check_same(old_row, new_row, old_fields, new_fields=None): |
||||
|
if type(old_fields) != list: |
||||
|
old_fields = [old_fields] |
||||
|
|
||||
|
if new_fields is None: |
||||
|
new_fields = old_fields |
||||
|
|
||||
|
fields = zip(old_fields, new_fields) |
||||
|
|
||||
|
for old_field, new_field in fields: |
||||
|
if old_row[old_field] == new_row[new_field]: |
||||
|
continue |
||||
|
raise ValueError(f"Fields '{old_field}' and '{new_field}' differs for rows '{old_row}' and '{new_row}'") |
||||
|
return True |
||||
|
|
||||
|
|
||||
|
|
||||
|
def check_skola(): |
||||
|
old_query = "SELECT * FROM seminar_skoly ORDER BY id" |
||||
|
new_query = old_query |
||||
|
|
||||
|
old_res, new_res = execute_simple(old_query,new_query) |
||||
|
|
||||
|
res = zip(old_res,new_res) |
||||
|
|
||||
|
for o,n in res: |
||||
|
check_same(o,n,['id','aesop_id','izo','nazev','kratky_nazev','ulice','mesto','psc','stat','je_zs','je_ss','poznamka']) |
||||
|
|
||||
|
check_skola() |
||||
|
|
Loading…
Reference in new issue