mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
split gb_postcode in table creation and data loading
Data for gb_postcode now needs to be downloaded first. Also fixes table creation for postgis 2.0.
This commit is contained in:
1696070
data/gb_postcode.sql
1696070
data/gb_postcode.sql
File diff suppressed because it is too large
Load Diff
27
data/gb_postcode_table.sql
Normal file
27
data/gb_postcode_table.sql
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
-- This data contains Ordnance Survey data © Crown copyright and database right 2010.
|
||||||
|
-- Code-Point Open contains Royal Mail data © Royal Mail copyright and database right 2010.
|
||||||
|
-- OS data may be used under the terms of the OS OpenData licence:
|
||||||
|
-- http://www.ordnancesurvey.co.uk/oswebsite/opendata/licence/docs/licence.pdf
|
||||||
|
|
||||||
|
SET statement_timeout = 0;
|
||||||
|
SET client_encoding = 'UTF8';
|
||||||
|
SET standard_conforming_strings = off;
|
||||||
|
SET check_function_bodies = false;
|
||||||
|
SET client_min_messages = warning;
|
||||||
|
SET escape_string_warning = off;
|
||||||
|
|
||||||
|
SET search_path = public, pg_catalog;
|
||||||
|
|
||||||
|
SET default_tablespace = '';
|
||||||
|
|
||||||
|
SET default_with_oids = false;
|
||||||
|
|
||||||
|
CREATE TABLE gb_postcode (
|
||||||
|
id integer,
|
||||||
|
postcode character varying(9),
|
||||||
|
geometry geometry,
|
||||||
|
CONSTRAINT enforce_dims_geometry CHECK ((st_ndims(geometry) = 2)),
|
||||||
|
CONSTRAINT enforce_srid_geometry CHECK ((st_srid(geometry) = 4326))
|
||||||
|
);
|
||||||
|
|
||||||
|
GRANT SELECT ON TABLE gb_postcode TO "www-data";
|
||||||
@@ -147,7 +147,15 @@
|
|||||||
pgsqlRunScriptFile(CONST_BasePath.'/data/country_name.sql');
|
pgsqlRunScriptFile(CONST_BasePath.'/data/country_name.sql');
|
||||||
pgsqlRunScriptFile(CONST_BasePath.'/data/country_naturalearthdata.sql');
|
pgsqlRunScriptFile(CONST_BasePath.'/data/country_naturalearthdata.sql');
|
||||||
pgsqlRunScriptFile(CONST_BasePath.'/data/country_osm_grid.sql');
|
pgsqlRunScriptFile(CONST_BasePath.'/data/country_osm_grid.sql');
|
||||||
pgsqlRunScriptFile(CONST_BasePath.'/data/gb_postcode.sql');
|
pgsqlRunScriptFile(CONST_BasePath.'/data/gb_postcode_table.sql');
|
||||||
|
if (file_exists(CONST_BasePath.'/data/gb_postcode_data.sql.gz'))
|
||||||
|
{
|
||||||
|
pgsqlRunScriptFile(CONST_BasePath.'/data/gb_postcode_data.sql.gz');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "WARNING: external UK postcode table not found.\n";
|
||||||
|
}
|
||||||
pgsqlRunScriptFile(CONST_BasePath.'/data/us_statecounty.sql');
|
pgsqlRunScriptFile(CONST_BasePath.'/data/us_statecounty.sql');
|
||||||
pgsqlRunScriptFile(CONST_BasePath.'/data/us_state.sql');
|
pgsqlRunScriptFile(CONST_BasePath.'/data/us_state.sql');
|
||||||
pgsqlRunScriptFile(CONST_BasePath.'/data/us_postcode.sql');
|
pgsqlRunScriptFile(CONST_BasePath.'/data/us_postcode.sql');
|
||||||
@@ -677,10 +685,29 @@
|
|||||||
// Convert database DSN to psql parameters
|
// Convert database DSN to psql parameters
|
||||||
$aDSNInfo = DB::parseDSN(CONST_Database_DSN);
|
$aDSNInfo = DB::parseDSN(CONST_Database_DSN);
|
||||||
if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
|
if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
|
||||||
$sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'].' -f '.$sFilename;
|
$sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'];
|
||||||
|
|
||||||
|
$ahGzipPipes = null;
|
||||||
|
if (preg_match('/\\.gz$/', $sFilename))
|
||||||
|
{
|
||||||
|
$aDescriptors = array(
|
||||||
|
0 => array('pipe', 'r'),
|
||||||
|
1 => array('pipe', 'w'),
|
||||||
|
2 => array('file', '/dev/null', 'a')
|
||||||
|
);
|
||||||
|
$hGzipProcess = proc_open('zcat '.$sFilename, $aDescriptors, $ahGzipPipes);
|
||||||
|
if (!is_resource($hGzipProcess)) fail('unable to start zcat');
|
||||||
|
$aReadPipe = $ahGzipPipes[1];
|
||||||
|
fclose($ahGzipPipes[0]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sCMD .= ' -f '.$sFilename;
|
||||||
|
$aReadPipe = array('pipe', 'r');
|
||||||
|
}
|
||||||
|
|
||||||
$aDescriptors = array(
|
$aDescriptors = array(
|
||||||
0 => array('pipe', 'r'),
|
0 => $aReadPipe,
|
||||||
1 => array('pipe', 'w'),
|
1 => array('pipe', 'w'),
|
||||||
2 => array('file', '/dev/null', 'a')
|
2 => array('file', '/dev/null', 'a')
|
||||||
);
|
);
|
||||||
@@ -688,7 +715,6 @@
|
|||||||
$hProcess = proc_open($sCMD, $aDescriptors, $ahPipes);
|
$hProcess = proc_open($sCMD, $aDescriptors, $ahPipes);
|
||||||
if (!is_resource($hProcess)) fail('unable to start pgsql');
|
if (!is_resource($hProcess)) fail('unable to start pgsql');
|
||||||
|
|
||||||
fclose($ahPipes[0]);
|
|
||||||
|
|
||||||
// TODO: error checking
|
// TODO: error checking
|
||||||
while(!feof($ahPipes[1]))
|
while(!feof($ahPipes[1]))
|
||||||
@@ -698,6 +724,12 @@
|
|||||||
fclose($ahPipes[1]);
|
fclose($ahPipes[1]);
|
||||||
|
|
||||||
proc_close($hProcess);
|
proc_close($hProcess);
|
||||||
|
if ($ahGzipPipes)
|
||||||
|
{
|
||||||
|
fclose($ahGzipPipes[1]);
|
||||||
|
proc_close($hGzipProcess);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function pgsqlRunScript($sScript)
|
function pgsqlRunScript($sScript)
|
||||||
|
|||||||
Reference in New Issue
Block a user