2024-02-20 16:45:01 +01:00

447 lines
14 KiB
Python

# -*- coding: utf-8 -*-
from storm.locals import *
import uuid
import sys
import datetime
from time import gmtime, mktime
sys.path.append("../storm/")
from StormClass import *
db_new = create_database("postgres://michel:8888sm@10.0.3.7:5432/dbpgalloa")
store_new = Store(db_new)
db_old = create_database("postgres://michel:8888sm@10.0.3.7:5432/alloadb")
store_old = Store(db_old)
def remplir_entete(classe, table):
classe.z_nomtable = unicode(table)
classe.z_semaphore = u"FREE"
classe.z_datecreation = mktime(gmtime())
classe.z_datemodification = classe.z_datecreation
classe.z_dernier_temps_modif = u"0"
classe.z_groupecreateur = u"root:root"
classe.z_encourstraitement = False
classe.z_datearevoirle = datetime.date(1970, 1, 1)
classe.z_nombreimport = 0
classe.z_modification = False
classe.z_localesvn = int(datetime.datetime.now().strftime("%y%m%d%H%M%S"))
classe.z_raisonrefus = u""
classe.z_historique = u"root:" + datetime.datetime.now().strftime("%y%m%d%H%M%S") + ";"
#################################################################################################
def stripANous(champs):
if champs == None:
return u""
else:
return unicode(champs.strip())
def export_continents():
global store_old, store_new
res = store_old.execute("select * from cartographie.continents")
for cont in res:
new = Continent()
new.uuidcontinents = unicode(uuid.uuid4())
new.frlibcontinent = cont[2]
new.gblibcontinent = cont[3]
new.refcontinents = cont[1]
new.refalaune = cont[16]
new.refbaniere = cont[17]
new.frdesccontinents = cont[18]
new.gbdesccontinents = cont[19]
new.ispublique = True
new.is_thematique = False
remplir_entete(new, "Continent")
store_new.add(new)
def export_pays():
global store_old, store_new
res = store_old.execute("select * from cartographie.pays")
uuiddevise = store_new.find(Ogdevise).one().uuidogdevise
for pays in res:
new = Pays()
new.uuidpays = unicode(uuid.uuid4())
new.refpays = pays[1] + u"-"
new.frlibpays = stripANous(pays[2])
new.gblibpays = stripANous(pays[3])
new.frdescpays = stripANous(pays[4])
new.gbdescpays = stripANous(pays[5])
new.codedevise = stripANous(pays[6])
new.lattitude_depart = stripANous(pays[7])
new.longitude_depart = stripANous(pays[8])
new.lattitude_arrivee = stripANous(pays[9])
new.longitude_arrivee = stripANous(pays[10])
if pays[24].strip() == "5":
new.refcontinents = u"12"
else : new.refcontinents = stripANous(pays[24])
new.uuidogdevise = uuiddevise
new.is_cee = False
new.is_asean = False
new.is_dangerous = False
new.is_commonewealth = False
new.ispublique = True
new.is_thematique = False
new.codeiso = stripANous(pays[1])
remplir_entete(new, "Pays")
store_new.add(new)
def export_region():
global store_old, store_new
res = store_old.execute("select * from cartographie.region")
for cont in res:
new = Region2()
new.refregion = stripANous(cont[0])
new.uuidregion = unicode(uuid.uuid4())
new.frlibregion = stripANous(cont[2])
new.gblibregion = stripANous(cont[3])
new.frdescregion = u""
new.gbdescregion = u""
new.frarguments = u""
new.gbarguments = u""
new.frclimat = u""
new.gbclimat = u""
new.frsante = u""
new.gbsante = u""
new.fraccroche = u""
new.gbaccroche = u""
new.fra_voir_avivre = u""
new.gba_voir_avivre = u""
new.frcuisine = u""
new.gbcuisine = u""
new.frshopping = u""
new.gbshopping = u""
new.janvier = False
new.fevrier = False
new.mars = False
new.avril = False
new.mai = False
new.juin = False
new.juillet = False
new.aout = False
new.septembre = False
new.octobre = False
new.novembre = False
new.decembre = False
new.note_privee = u""
new.refmageaccroche = u""
new.lattitude_depart = u""
new.longitude_depart = u""
new.lattitude_arrivee = u""
new.longitude_arrivee = u""
new.principauxgatteways = u""
new.ispublique = True
tmp = store_new.find(Pays, Pays.refpays == stripANous(cont[39]) + u"-").one()
if (tmp != None):
new.refpays = stripANous(tmp.refpays)
else :
new.refpays = u"Z9"
new.is_thematique = False
remplir_entete(new, "Region")
store_new.add(new)
def export_destination():
global store_old, store_new
res = store_old.execute("select * from cartographie.destination")
compteur = 0
for dest in res:
new = Region2()
new.uuidregion = unicode(uuid.uuid4())
new.frlibregion = stripANous(dest[1])
new.gblibregion = stripANous(dest[2])
new.frdescregion = u""
new.gbdescregion = u""
new.frarguments = u""
new.gbarguments = u""
new.frclimat = u""
new.gbclimat = u""
new.frsante = u""
new.gbsante = u""
new.fraccroche = u""
new.gbaccroche = u""
new.fra_voir_avivre = u""
new.gba_voir_avivre = u""
new.frcuisine = u""
new.gbcuisine = u""
new.frshopping = u""
new.gbshopping = u""
new.janvier = False
new.fevrier = False
new.mars = False
new.avril = False
new.mai = False
new.juin = False
new.juillet = False
new.aout = False
new.septembre = False
new.octobre = False
new.novembre = False
new.decembre = False
new.note_privee = u""
new.refmageaccroche = u""
new.lattitude_depart = u""
new.longitude_depart = u""
new.lattitude_arrivee = u""
new.longitude_arrivee = u""
new.principauxgatteways = u""
new.ispublique = True
tmp = store_new.find(Region, Region.refregion == stripANous(dest[0])).one()
if tmp != None:
new.refregion = u"zzz%s" % compteur
else:
new.refregion = stripANous(dest[0])
compteur += 1
tmp = store_new.find(Pays, Pays.refpays == stripANous(dest[0])[0:3]).one()
if (tmp != None):
new.refpays = stripANous(tmp.refpays)
else :
new.refpays = u"Z9"
new.is_thematique = True
remplir_entete(new, "Region")
store_new.add(new)
def export_ville():
global store_old, store_new
res = store_old.execute("select * from cartographie.ville")
cpt = 0
for ville in res:
cpt += 1
if cpt % 1000:
print cpt
new = Ville()
new.refville = stripANous(ville[0])
new.uuidville = unicode(uuid.uuid4())
new.frlibville = stripANous(ville[1])
new.gblibville = stripANous(ville[2])
new.frdescville = u""
new.gbdescville = u""
new.code_postal = u""
new.codeetat = stripANous(ville[23])
new.gateway = ville[24]
new.lattitude_depart = stripANous(ville[6])
new.longitude_depart = stripANous(ville[7])
new.lattitude_arrivee = u""
new.longitude_arrivee = u""
tmp = store_new.find(Region, Region.refregion == stripANous(ville[10])).one()
if (tmp != None):
new.refregion = stripANous(tmp.refregion)
else: new.refregion = u"bidon"
new.ispublique = True
new.codeiso = u""
remplir_entete(new, "Ville")
store_new.add(new)
def export_gateway():
global store_old, store_new
res = store_old.execute("select * from cartographie.gateway")
cpt = 0
cptaffiche = 100
for gat in res:
new = Gateway()
cpt += 1
if (cpt == cptaffiche) or (cpt == 27846):
print "%s/27846" % cpt
cptaffiche += 100
new.refgateway = stripANous(gat[1])
new.uuidgateway = unicode(uuid.uuid4())
new.codegalileo = stripANous(gat[2])
new.frlibgateway = stripANous(gat[3])
new.gblibgateway = stripANous(gat[4])
new.isfer = gat[5]
new.isroutiere = gat[6]
new.isaeroportinter = gat[7]
new.isaerodrome = gat[8]
new.isferry = gat[9]
new.isportcroisiere = gat[10]
new.isportplaisance = gat[11]
new.lattitude_depart = stripANous(gat[12])
new.longitude_depart = stripANous(gat[13])
new.lattitude_arrivee = stripANous(gat[14])
new.longitude_arrivee = stripANous(gat[15])
new.ispublique = True
remplir_entete(new, "Gateway")
store_new.add(new)
def export_z_villes_gateways():
print "créations des listes"
tmp = store_new.find(Ville, True)
listeVille = []
listeGateway = []
for cont in tmp:
listeVille.append(cont.refville)
tmp = store_new.find(Gateway, True)
for cont in tmp:
listeGateway.append(cont.refgateway)
print "bouclewhile"
cpt = 0
while len(listeGateway):
tmpgateway = listeGateway[0]
del listeGateway[0]
res = store_old.execute("select * from cartographie.z_villes_gateways where refgateway='%s'" % tmpgateway)
for cont in res:
if cont[0] in listeVille:
cpt += 1
a = Zlien_villes_gateways()
a.refville = cont[0]
a.refgateway = tmpgateway
store_new.add(a)
print "commit", cpt
store_new.commit()
"""global store_old,store_new
print "récupération de la table en cours..."
res=store_old.execute("select * from cartographie.z_villes_gateways ORDER BY refville asc limit 10000")
print "récupération terminé"
cpt=1
villeAvant=None
for lien in res:
new=Zlien_villes_gateways()
cpt+=1
if cpt%1000==0:
print "%s/12311488"%cpt
tmp1=lien[0]
tmp2=lien[1]
if villeAvant==tmp2 :
if tmp1 in listeGateway:
new.refgateway=tmp1
new.refville=tmp2
else:
continue
else:
if tmp2 in listeVille:
villeAvant=tmp2
new.refville=tmp2
new.refgateway=tmp1
else:
villeAvant=None
continue
store_new.add(new)
if cpt%150000==0:
print "commit en cour..."
store_new.commit()
print "commit terminé"
"""
def creationObjetBidon():
# ## création d'un contineent bidon
new = Continent()
new.uuidcontinents = unicode(uuid.uuid4())
new.frlibcontinent = u"Continent Bidon"
new.gblibcontinent = u"Continent bidon"
new.refcontinents = u"12"
new.refalaune = u""
new.refbaniere = u""
new.frdesccontinents = u"un très joli continent"
new.gbdesccontinents = u"a very beautiful continent"
new.ispublique = False
new.is_thematique = False
remplir_entete(new, "Continent")
store_new.add(new)
store_new.commit()
# ## création d'un pays bidon
new = Pays()
new.uuidpays = unicode(uuid.uuid4())
new.frlibpays = u"PAYS BIDON"
new.gblibpays = u"PAYS BIDON"
new.refpays = u"Z9"
new.refcontinents = u"12"
new.frdescpays = u"un très joli pays"
new.gbdescpays = u"a very beautiful pays"
new.ispublique = False
new.is_thematique = False
remplir_entete(new, "Pays")
new.uuidogdevise = store_new.find(Ogdevise).one().uuidogdevise
store_new.add(new)
store_new.commit()
### création d'une region bidon ###
new = Region()
new.refregion = u"bidon"
new.uuidregion = unicode(uuid.uuid4())
new.frlibregion = u"REGION BIDON"
new.gblibregion = u"REGION BIDON"
new.refpays = u"Z9"
new.ispublique = False
remplir_entete(new, "Region")
store_new.add(new)
store_new.commit()
### création d'une ville bidon ###
new = Ville()
new.refville = u"ZBidon"
new.refregion = u"bidon"
new.uuidville = unicode(uuid.uuid4())
new.frlibville = u"VILLE BIDON"
new.gblibville = u"VILLE BIDON"
new.ispublique = False
remplir_entete(new, "Region")
store_new.add(new)
store_new.commit()
### création d'un aéroport bidon ###
new = Gateway()
new.refgateway = u"ZZNAZ"
new.uuidgateway = unicode(uuid.uuid4())
new.frlibgateway = u"GATEWAY BIDON"
new.gblibgateway = u"GATEWAY BIDON"
new.ispublique = False
remplir_entete(new, "Gateway")
store_new.add(new)
store_new.commit()
def importerAll ():
#===============================================================================
# #===============================================================================
# # print"def export_continents():"
# # export_continents()
# # store_new.commit()
# # print"def export_pays()"
# # export_pays()
# # store_new.commit()
# # print "export_region()"
# # export_region()
# # store_new.commit()
# # print "export_destination()"
# # export_destination()
# # store_new.commit()
# #===============================================================================
# print "export_ville()"
# export_ville()
# print "commit en cours"
# store_new.commit()
#===============================================================================
#===============================================================================
# print "export_gateway()"
# export_gateway()
# store_new.commit()
#===============================================================================
print "export_z_villes_gateways():"
export_z_villes_gateways()
# creationObjetBidon()
export_region()
store_new.commit()
export_destination()
# export_z_villes_gateways()
print "commit en cour..."
store_new.commit()
print "commit terminé"
print "--terminé--"