48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: UTF-8 -*-
|
|
|
|
from sqlalchemy.sql import text
|
|
from sqlalchemy.engine import URL
|
|
from sqlalchemy import create_engine
|
|
import pandas as pd
|
|
import geopandas as gpd
|
|
|
|
|
|
# pg_dump -h 91.134.194.221 -d cadastre -U cgeier --schema="38_202207" -s > 38_202207.sql
|
|
# psql -h 91.134.194.221 -U cgeier -d cadastre -a -f 38_202207.sql
|
|
|
|
user = 'cgeier'
|
|
pwd = 'adm1n*bdCen'
|
|
adr = '91.134.194.221'
|
|
base = 'cadastre'
|
|
url = URL.create('postgresql+psycopg2',
|
|
username=user,
|
|
password=pwd,
|
|
host=adr,
|
|
database=base,
|
|
)
|
|
con_cad = create_engine(url)
|
|
|
|
|
|
lst_sch = con_cad.dialect.get_schema_names(con_cad)
|
|
lst_sch = ['07_202207','26_202207','42_202207']
|
|
|
|
for s in lst_sch:
|
|
lst_tab = con_cad.dialect.get_table_names(con_cad,s)
|
|
for t in lst_tab:
|
|
lst_col = con_cad.dialect.get_columns(con_cad,t,s)
|
|
lst_col = [x['name'] for x in lst_col ]
|
|
|
|
if 'geom' in lst_col:
|
|
df = gpd.read_postgis('SELECT * FROM "{sch}".{tab}'.format(sch=s,tab=t),con_cad)
|
|
if df.empty:
|
|
continue
|
|
df.to_postgis(t,con_cad,'xx_202207',if_exists='append',index=False)
|
|
else :
|
|
df = pd.read_sql_table(t,con_cad,s)
|
|
if df.empty:
|
|
continue
|
|
df.to_sql(t,con_cad,'xx_202207',if_exists='append',index=False)
|
|
|
|
print("{sch}.{tab}".format(sch=s,tab=t))
|