Merge pull request #3576 from lonvia/test-updating

Github action for testing migration
This commit is contained in:
Sarah Hoffmann 2024-11-04 15:56:20 +01:00 committed by GitHub
commit af756d61dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 49 additions and 7 deletions

View File

@ -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:

View File

@ -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
@ -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;
@ -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;