Skip to content

Commit

Permalink
Merge pull request #3576 from lonvia/test-updating
Browse files Browse the repository at this point in the history
Github action for testing migration
  • Loading branch information
lonvia authored Nov 4, 2024
2 parents 6415c9c + 2d115ea commit af756d6
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 7 deletions.
42 changes: 42 additions & 0 deletions .github/workflows/ci-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,48 @@ jobs:
- name: Check full import
run: nominatim admin --check-database

migrate:
runs-on: ubuntu-24.04
needs: create-archive

steps:
- uses: actions/download-artifact@v4
with:
name: full-source

- name: Unpack Nominatim
run: tar xf nominatim-src.tar.bz2

- uses: ./Nominatim/.github/actions/setup-postgresql
with:
postgresql-version: 17
postgis-version: 3

- name: Install Python dependencies
run: |
sudo apt-get install --no-install-recommends virtualenv osm2pgsql
- name: Install Nominatim master version
run: |
virtualenv master
cd Nominatim
../master/bin/pip install packaging/nominatim-db
- name: Install Nominatim from pypi
run: |
virtualenv release
./release/bin/pip install nominatim-db
- name: Import Nominatim database using release
run: |
./release/bin/nominatim import --osm-file Nominatim/test/testdb/apidb-test-data.pbf
./release/bin/nominatim add-data --file Nominatim/test/testdb/additional_api_test.data.osm
- name: Migrate to master version
run: |
./master/bin/nominatim admin --migrate
./release/bin/nominatim add-data --file Nominatim/test/testdb/additional_api_test.data.osm
codespell:
runs-on: ubuntu-latest
steps:
Expand Down
14 changes: 7 additions & 7 deletions lib-sql/functions/utils.sql
Original file line number Diff line number Diff line change
Expand Up @@ -175,18 +175,18 @@ $$
LANGUAGE plpgsql STABLE;


CREATE OR REPLACE FUNCTION get_country_code(place_centre geometry)
CREATE OR REPLACE FUNCTION get_country_code(place geometry)
RETURNS TEXT
AS $$
DECLARE
nearcountry RECORD;
countries TEXT[];
BEGIN
-- RAISE WARNING 'get_country_code, start: %', ST_AsText(place_centre);
-- RAISE WARNING 'get_country_code, start: %', ST_AsText(place);

-- Try for a OSM polygon
SELECT array_agg(country_code) FROM location_area_country
WHERE country_code is not null and st_covers(geometry, place_centre)
WHERE country_code is not null and st_covers(geometry, place)
INTO countries;

IF array_length(countries, 1) = 1 THEN
Expand All @@ -197,7 +197,7 @@ BEGIN
-- more than one country found, confirm against the fallback data what to choose
FOR nearcountry IN
SELECT country_code FROM country_osm_grid
WHERE ST_Covers(geometry, place_centre) AND country_code = ANY(countries)
WHERE ST_Covers(geometry, place) AND country_code = ANY(countries)
ORDER BY area ASC
LOOP
RETURN nearcountry.country_code;
Expand All @@ -217,18 +217,18 @@ BEGIN
RETURN countries[1];
END IF;

-- RAISE WARNING 'osm fallback: %', ST_AsText(place_centre);
-- RAISE WARNING 'osm fallback: %', ST_AsText(place);

-- Try for OSM fallback data
-- The order is to deal with places like HongKong that are 'states' within another polygon
FOR nearcountry IN
SELECT country_code from country_osm_grid
WHERE st_covers(geometry, place_centre) order by area asc limit 1
WHERE st_covers(geometry, place) order by area asc limit 1
LOOP
RETURN nearcountry.country_code;
END LOOP;

-- RAISE WARNING 'near osm fallback: %', ST_AsText(place_centre);
-- RAISE WARNING 'near osm fallback: %', ST_AsText(place);

RETURN NULL;
END;
Expand Down

0 comments on commit af756d6

Please sign in to comment.