Ty jednodušší Pavlovy části
This commit is contained in:
		
							parent
							
								
									d15e97447e
								
							
						
					
					
						commit
						a0a7f5d332
					
				
					 1 changed files with 100 additions and 1 deletions
				
			
		
							
								
								
									
										101
									
								
								db_compare.py
									
									
									
									
									
								
							
							
						
						
									
										101
									
								
								db_compare.py
									
									
									
									
									
								
							|  | @ -54,5 +54,104 @@ def check_skola(): | ||||||
| 	for o,n in 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_same(o,n,['id','aesop_id','izo','nazev','kratky_nazev','ulice','mesto','psc','stat','je_zs','je_ss','poznamka']) | ||||||
| 
 | 
 | ||||||
| check_skola() | def check_resitel(): | ||||||
|  | 	old_query = 'SELECT * FROM seminar_resitele ORDER BY id' | ||||||
|  | 	new_query = 'SELECT * FROM seminar_resitele JOIN seminar_osoby ON seminar_resitele.osoba_id = seminar_osoby.id ORDER BY seminar_resitele.id' | ||||||
|  | 
 | ||||||
|  | 	old_res, new_res = execute_simple(old_query,new_query) | ||||||
|  | 
 | ||||||
|  | 	res = zip(old_res,new_res) | ||||||
|  | 	 | ||||||
|  | 	fields_osoba = [ | ||||||
|  | 		'jmeno', | ||||||
|  | 		'prijmeni', | ||||||
|  | 		'user', | ||||||
|  | 		'pohlavi_muz', | ||||||
|  | 		'email', | ||||||
|  | 		'telefon', | ||||||
|  | 		'datum_narozeni', | ||||||
|  | 		'datum_souhlasu_udaje', | ||||||
|  | 		'datum_souhlasu_zasilani', | ||||||
|  | 		'datum_prihlaseni', | ||||||
|  | 		'ulice', | ||||||
|  | 		'mesto', | ||||||
|  | 		'psc', | ||||||
|  | 		'stat', | ||||||
|  | 	] | ||||||
|  | 	fields_keep = [ | ||||||
|  | 		'id', | ||||||
|  | 		'skola_id', | ||||||
|  | 		'rok_maturity', | ||||||
|  | 		'zasilat', | ||||||
|  | 		'poznamka', | ||||||
|  | 	] | ||||||
|  | 	fields_old = fields_keep+fields_osoba | ||||||
|  | 	fields_new = fields_keep + ['seminar_osoby.'+f for f in fields_osoba] | ||||||
|  | 	for o,n in res: | ||||||
|  | 		check_same(o,n,fields_old, fields_new) | ||||||
|  | 
 | ||||||
|  | def check_reseni(): | ||||||
|  | 	old_query = 'SELECT * FROM seminar_reseni ORDER BY id' | ||||||
|  | 	new_query = 'SELECT * FROM seminar_reseni JOIN seminar_hodnoceni AS hodnoceni ON hodnoceni_id = hodnoceni.id ORDER BY id' | ||||||
|  | 
 | ||||||
|  | 	same_fields = ['id', 'forma', 'poznamka'] | ||||||
|  | 	renamed_fields = [('timestamp', 'cas_doruceni'), | ||||||
|  | 		# Also moved fields | ||||||
|  | 		('problem_id', 'hodnoceni.problem_id'), | ||||||
|  | 		('body', 'hodnoceni.body'), | ||||||
|  | 		('cislo_body_id', 'hodnoceni.cislo_body_id'), | ||||||
|  | 		] | ||||||
|  | 	old_fields = same_fields + [f[0] for f in renamed_fields] | ||||||
|  | 	new_fields = same_fields + [f[1] for f in renamed_fields] | ||||||
|  | 
 | ||||||
|  | 	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,old_fields, new_fields) | ||||||
|  | 
 | ||||||
|  | 	# Řešitelé jsou nově m2m, takže je musíme dohledat | ||||||
|  | 	old_query = 'SELECT id, resitel_id FROM seminar_reseni ORDER BY id' | ||||||
|  | 	new_query = 'SELECT reseni_id, resitel_id FROM seminar_reseni_resitele ORDER BY reseni_id' | ||||||
|  | 
 | ||||||
|  | 	oldcur = oldconn.cursor() | ||||||
|  | 	old_results = oldcur.execute(old_query).fetchall() | ||||||
|  | 	newcur = newconn.cursor() | ||||||
|  | 	new_results = newcur.execute(old_query).fetchall() | ||||||
|  | 
 | ||||||
|  | 	for oldr in old_results: | ||||||
|  | 		if oldr not in new_results: | ||||||
|  | 			raise ValueError(f'Pair {oldr} not found in new db.') | ||||||
|  | 
 | ||||||
|  | def check_organizator(): | ||||||
|  | 	old_query = 'SELECT * FROM seminar_organizatori ORDER BY id' | ||||||
|  | 	new_query = 'SELECT * FROM seminar_organizatori JOIN seminar_osoby AS osoba ON osoba_id = osoba.id JOIN auth_user AS user ON osoba.user_id = user.id ORDER BY id' | ||||||
|  | 
 | ||||||
|  | 	same_fields = ['studuje', 'strucny_popis_organizatora'] | ||||||
|  | 	renamed_fields = [ | ||||||
|  | 		('user_id', 'user.id'), | ||||||
|  | 		('prezdivka', 'osoba.prezdivka'), | ||||||
|  | 		('foto', 'osoba.foto'), | ||||||
|  | 		('foto_male', 'osoba.foto_male'), | ||||||
|  | 		] | ||||||
|  | 	old_fields = same_fields + [f[0] for f in renamed_fields] | ||||||
|  | 	new_fields = same_fields + [f[1] for f in renamed_fields] | ||||||
|  | 
 | ||||||
|  | 	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,old_fields, new_fields) | ||||||
|  | 		# organizuje od, do: | ||||||
|  | 		if o.organizuje_od_roku != n.organizuje_od.year: | ||||||
|  | 			raise ValueError(f'Not matching organizuje_od for org id={o.id}: old {o.organizuje_od_roku}, new {n.organizuje_od}') | ||||||
|  | 		if o.organizuje_do_roku != n.organizuje_do.year: | ||||||
|  | 			raise ValueError(f'Not matching organizuje_do for org id={o.id}: old {o.organizuje_do_roku}, new {n.organizuje_do}') | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | check_skola() | ||||||
|  | check_resitel() | ||||||
|  | check_reseni() | ||||||
|  | check_organizator() | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Pavel "LEdoian" Turinsky
						Pavel "LEdoian" Turinsky