-
Notifications
You must be signed in to change notification settings - Fork 21
Description
What version of PgOSM Flex are you using?
PgOSM Flex 1.2.3 now. Replication had been using PgOSM Flex 1.2.2.
Docker image
1.2.3: 53aa0c83e994
What did you do exactly?
Bumped replication script to use 1.2.3 when it had been running happily on 1.2.2. Current pgosm_flex_replication_update.sh:
source ~/.pgosm-geocode
echo "Running PgOSM Flex"
docker run --name pgosm -d --rm \
-v ~/pgosm-data:/app/output \
-v /etc/localtime:/etc/localtime:ro \
-e POSTGRES_USER=$POSTGRES_USER \
-e POSTGRES_PASSWORD=$POSTGRES_PASSWORD \
-e POSTGRES_HOST=$POSTGRES_HOST \
-e POSTGRES_DB=$POSTGRES_DB \
-e POSTGRES_PORT=$POSTGRES_PORT \
-p 5433:5432 \
-d rustprooflabs/pgosm-flex:1.2.3 \
-c max_connections=300
docker exec -i \
pgosm python3 docker/pgosm_flex.py \
--ram=5 \
--region=north-america/us \
--subregion=colorado \
--replication
docker stop pgosmWhat did you expect to happen?
To work.
What did happen instead?
It failed because the osm.append_data_finish(boolean) shifted unexpectedly.
psycopg.errors.InvalidFunctionDefinition: cannot remove parameter defaults from existing function
HINT: Use DROP PROCEDURE osm.append_data_finish(boolean) first.
What did you do to try analyzing the problem?
I went back to #427 and see I accidentally changed the function signature to remove the default, causing the error. That wasn't an intentional change.
Proposed solution
Most users will want to stay with 1.2.2 if you're using replication until this is resolved in the next version (1.3.0).
Manual fixes for 1.2.3 (and subsequently 1.3.0)
If you're eager to move to 1.2.3 for the improved timestamp in osm_date you can manually run this.
DROP PROCEDURE osm.append_data_finish(boolean);
If you go this route you will need to do the same when you upgrade to 1.3.0. If you don't upgrade to 1.2.3, you won't need to do anything manually for this issue for the 1.3.0 update.