I forgot to commit the sql script for last commits.
[platal.git] / upgrade / 1.0.1 / merge_issues_geocoding.php
1 #!/usr/bin/php5
2 <?php
3 // WARNING: this script takes a few weeks to be executed completly, thus run it into a screen.
4
5 require_once 'connect.db.inc.php';
6 require_once '../../classes/address.php';
7
8 $globals->debug = 0; // Do not store backtraces.
9
10 print "Tries to geocode addresses (due a bug in the previous release, all addresses must run once again).\n";
11 $time = XDB::fetchOneCell('SELECT COUNT(distinct(pid), jobid)
12 FROM profile_addresses
13 WHERE accuracy IS NOT NULL AND accuracy > 0');
14 $time = ceil($time / 60 / 24);
15 print "It will approximately take $time days.\n";
16
17 $it = XDB::rawIterator('SELECT *
18 FROM profile_addresses
19 WHERE accuracy IS NOT NULL AND accuracy > 0
20 ORDER BY pid, jobid, type, id');
21 $total = $it->total();
22 $i = 0;
23 printf("\r%u / %u", $i, $total);
24 $pid = 0;
25 $jobid = 0;
26 while ($item = $it->next()) {
27 $address = new Address($item);
28 $address->format(array('requireGeocoding' => true, 'stripGeocoding' => true));
29 $address->delete();
30 $address->save();
31 if (!($pid == $address->pid && $jobid == $address->jobid)) {
32 $pid = $address->pid;
33 $jobid = $address->jobid;
34 sleep(60);
35 }
36
37 ++$i;
38 printf("\r%u / %u", $i, $total);
39 }
40 print "\nGeocoding done.\n\n";
41 print "That's all folks!\n";
42
43 /* vim:set et sw=4 sts=4 ts=4: */
44 ?>