- Corrige l'erreur SQL 'Unknown column fk_operation in users' - L'opération active est récupérée depuis operations.chk_active = 1 - Jointure avec users pour filtrer par entité de l'admin créateur - Query: SELECT o.id FROM operations o INNER JOIN users u ON u.fk_entite = o.fk_entite WHERE u.id = ? AND o.chk_active = 1
147 lines
6.5 KiB
Bash
Executable File
147 lines
6.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
ladate=$(date +%Y%m%d-%H%M)
|
|
lheure=$(date +%H:%M:%S)
|
|
|
|
mybase=osm
|
|
myuser=osm_maj_user
|
|
mypass=d66,OsmMaj.User
|
|
|
|
log=osm.log
|
|
rm -f $log
|
|
touch $log
|
|
echo "To: contact@d6soft.fr" >> $log
|
|
echo "From: contact@d6soft.fr" >> $log
|
|
echo "Subject: [Import] OSM dva-maria - $ladate" >> $log
|
|
|
|
continent=australia-oceania
|
|
country=new-caledonia
|
|
|
|
cd /var/osm
|
|
|
|
echo "Demarrage du telechargement de la Nouvelle-Caledonie a $lheure" >> $log
|
|
|
|
rm -f ${country}-latest.osm.pbf
|
|
rm -f ${country}.o5m
|
|
rm -f ${country}-streets.csv
|
|
rm -f streets.csv
|
|
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Debut du telechargement de la Nouvelle-Caledonie a $lheure" >> $log
|
|
wget http://download.geofabrik.de/${continent}/${country}-latest.osm.pbf -O ${country}-latest.osm.pbf
|
|
if [ "$?" -ne "0" ] ; then
|
|
echo "!!!! Désolé, le téléchargement deNouvelle-Caledonie semble ne pas fonctionner. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $log
|
|
# exit 1
|
|
else
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Telechargement de la Nouvelle-Caledonie terminee a $lheure" >> $log
|
|
|
|
osmconvert -v ${country}-latest.osm.pbf --all-to-nodes --drop-relations --max-objects=99999999 --out-o5m > ${country}.o5m
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Generation du fichier .o5m terminee a $lheure" >> $log
|
|
|
|
osmconvert ${country}.o5m --csv="@id @lat @lon name place addr:street addr:housenumber addr:city addr:village addr:town" --csv-headline --csv-separator=, -o=${country}-streets.csv
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Conversion en .csv terminee a $lheure" >> $log
|
|
|
|
awk -F, '$4 != "" || $5 != "" || $6 != "" || $8 != ""' ${country}-streets.csv > streets.csv
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Filtrage du csv termine a $lheure" >> $log
|
|
|
|
table="${country//-/_}"
|
|
|
|
rm -f cde.sql
|
|
touch cde.sql
|
|
echo "USE $mybase;" >> cde.sql
|
|
echo "DROP TABLE IF EXISTS $table;" >> cde.sql
|
|
echo "CREATE TABLE $table (rowid int(11) NOT NULL AUTO_INCREMENT, osm_id int(11) DEFAULT NULL, osm_lat varchar(10) DEFAULT NULL, osm_lng varchar(10) DEFAULT NULL, osm_name varchar(60) DEFAULT NULL, osm_place varchar(60) DEFAULT NULL, osm_street varchar(60) DEFAULT NULL, osm_number varchar(10) DEFAULT NULL, osm_city varchar(60) DEFAULT NULL, osm_date_creat timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (rowid)) ENGINE=InnoDB DEFAULT CHARSET=utf8;" >> cde.sql
|
|
echo "ALTER TABLE $table ADD INDEX osm_lat (osm_lat ASC), ADD INDEX osm_lng (osm_lng ASC);" >> cde.sql
|
|
echo "LOAD DATA LOCAL INFILE 'streets.csv' INTO TABLE $table CHARACTER SET 'UTF8mb4' FIELDS TERMINATED BY ',' IGNORE 1 LINES (osm_id, osm_lat, osm_lng, osm_name, osm_place, osm_street, osm_number, osm_city);" >> cde.sql
|
|
|
|
mariadb --local-infile=1 -u$myuser -p$mypass $mybase < cde.sql
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Importation sql de la Nouvelle-Caledonie dans la table $table terminee a $lheure" >> $log
|
|
|
|
rm -f ${country}-latest.osm.pbf
|
|
rm -f ${country}.o5m
|
|
rm -f ${country}-streets.csv
|
|
rm -f streets.csv
|
|
fi
|
|
|
|
|
|
continent=europe
|
|
country=france
|
|
|
|
cd /var/osm
|
|
|
|
echo "Demarrage du telechargement des regions a $lheure" >> $log
|
|
|
|
for region in alsace aquitaine auvergne basse-normandie bourgogne bretagne centre champagne-ardenne corse franche-comte guadeloupe guyane haute-normandie ile-de-france languedoc-roussillon limousin lorraine martinique mayotte midi-pyrenees nord-pas-de-calais pays-de-la-loire picardie poitou-charentes provence-alpes-cote-d-azur reunion rhone-alpes
|
|
do
|
|
rm -f ${country}-${region}-latest.osm.pbf
|
|
rm -f ${country}-${region}.o5m
|
|
rm -f ${country}-${region}-streets.csv
|
|
rm -f *.csv
|
|
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Debut du telechargement de la region $region a $lheure" >> $log
|
|
wget http://download.geofabrik.de/${continent}/${country}/${region}-latest.osm.pbf -O ${country}-${region}-latest.osm.pbf
|
|
if [ "$?" -ne "0" ] ; then
|
|
echo "!!!! Désolé, le téléchargement de la carte $region semble ne pas fonctionner. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> $log
|
|
# exit 1
|
|
else
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Telechargement de la region $region terminee a $lheure" >> $log
|
|
|
|
osmconvert -v ${country}-${region}-latest.osm.pbf --all-to-nodes --drop-relations --max-objects=99999999 --out-o5m > ${country}-${region}.o5m
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Generation du fichier .o5m terminee a $lheure" >> $log
|
|
|
|
osmconvert ${country}-${region}.o5m --csv="@id @lat @lon name place addr:street addr:housenumber addr:city addr:village addr:town" --csv-headline --csv-separator=, -o=${country}-${region}-streets.csv
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Conversion en .csv terminee a $lheure" >> $log
|
|
|
|
awk -F, '$4 != "" || $5 != "" || $6 != "" || $8 != ""' ${country}-${region}-streets.csv > streets.csv
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Filtrage du csv termine a $lheure" >> $log
|
|
|
|
split -l 1000 streets.csv streets_1000_
|
|
|
|
table="${region//-/_}"
|
|
|
|
rm -f cde.sql
|
|
touch cde.sql
|
|
echo "USE $mybase;" >> cde.sql
|
|
echo "DROP TABLE IF EXISTS $table;" >> cde.sql
|
|
echo "CREATE TABLE $table (rowid int(11) NOT NULL AUTO_INCREMENT, osm_id int(11) DEFAULT NULL, osm_lat varchar(10) DEFAULT NULL, osm_lng varchar(10) DEFAULT NULL, osm_name varchar(60) DEFAULT NULL, osm_place varchar(60) DEFAULT NULL, osm_street varchar(60) DEFAULT NULL, osm_number varchar(10) DEFAULT NULL, osm_city varchar(60) DEFAULT NULL, osm_date_creat timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (rowid)) ENGINE=InnoDB DEFAULT CHARSET=utf8;" >> cde.sql
|
|
echo "ALTER TABLE $table ADD INDEX osm_lat (osm_lat ASC), ADD INDEX osm_lng (osm_lng ASC);" >> cde.sql
|
|
mysql --local-infile=1 -u$myuser -p$mypass $mybase < cde.sql
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Creation sql de la region $region $a dans la table $table terminee a $lheure" >> $log
|
|
|
|
for a in $(find . -name "streets_1000_*" | sort);
|
|
do
|
|
rm -f cde.sql
|
|
touch cde.sql
|
|
echo "USE $mybase;" >> cde.sql
|
|
echo "LOAD DATA LOCAL INFILE '${a}' INTO TABLE $table CHARACTER SET 'UTF8mb4' FIELDS TERMINATED BY ',' IGNORE 1 LINES (osm_id, osm_lat, osm_lng, osm_name, osm_place, osm_street, osm_number, osm_city);" >> cde.sql
|
|
|
|
mariadb --local-infile=1 -u$myuser -p$mypass $mybase < cde.sql
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Importation sql de %a pour la region $region $a dans la table $table terminee a $lheure" >> $log
|
|
done
|
|
|
|
rm -f ${country}-${region}-latest.osm.pbf
|
|
rm -f ${country}-${region}.o5m
|
|
rm -f ${country}-${region}-streets.csv
|
|
rm -f streets_1000_*
|
|
rm -f *.csv
|
|
fi
|
|
done
|
|
|
|
|
|
lheure=$(date +%H:%M:%S)
|
|
echo "Fin des traitements OSM a $lheure" >> $log
|
|
|
|
ssmtp support@unikoffice.com < $log
|