Switch to new compose format

feature/import-diffs-refactoring
lukasmartinelli 2016-09-01 14:55:57 +02:00
rodzic 302f6644e0
commit 3fc38c16dc
23 zmienionych plików z 249 dodań i 247 usunięć

9
.env 100644
Wyświetl plik

@ -0,0 +1,9 @@
AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}"
AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}"
AWS_S3_HOST="${AWS_S3_HOST}"
AWS_S3_DOWNLOAD_BUCKET_NAME="osm2vectortiles-downloads"
AWS_S3_JOB_BUCKET_NAME="osm2vectortiles-testing"
POSTGRES_DB=osm
POSTGRES_USER=osm
POSTGRES_PASSWORD=osm
POSTGRES_HOST=postgres

Wyświetl plik

@ -34,5 +34,5 @@ merge-jobs:
compare-visual:
docker build -t osm2vectortiles/compare-visual tools/compare-visual
mapping-qa-report:
mapping-qa-report: import-osm
docker build -t osm2vectortiles/mapping-qa-report tools/mapping-qa-report

Wyświetl plik

@ -0,0 +1,43 @@
version: '2'
services:
import-labels:
image: "osm2vectortiles/import-external"
command: ./import-labels.sh
env_file: .env
links:
- postgres
import-natural-earth:
image: "osm2vectortiles/import-external"
command: ./import-natural-earth.sh
env_file: .env
links:
- postgres
import-water:
image: "osm2vectortiles/import-external"
command: ./import-water.sh
env_file: .env
links:
- postgres
mapbox-studio:
image: "osm2vectortiles/mapbox-studio"
volumes:
- ./osm2vectortiles.tm2source:/projects/osm2vectortiles.tm2source
links:
- postgres:db
ports:
- "3000:3000"
compare-visual:
image: "osm2vectortiles/compare-visual"
ports:
- "3030:3030"
volumes:
- ./osm2vectortiles.tm2source:/data/tm2source
links:
- postgres:db
mapping-qa-report:
image: "osm2vectortiles/mapping-qa-report"
env_file: .env
links:
- postgres:db
volumes:
- ./export:/data

Wyświetl plik

@ -0,0 +1,34 @@
version: '2'
services:
import-osm-diff:
image: "osm2vectortiles/import-osm"
command: ./import-diff.sh
env_file: .env
volumes:
- ./export:/export
- ./import:/import
- cache:/cache
links:
- postgres
update-osm-diff:
image: "osm2vectortiles/import-osm"
command: ./import-osmupdate.sh
volumes:
- ./import:/import
environment:
OSM_UPDATE_BASEURL: "http://download.geofabrik.de/europe/liechtenstein-updates/"
merge-osm-diff:
image: "osm2vectortiles/import-osm"
command: ./import-mergediffs.sh
volumes:
- ./import:/import
export-expired-tiles:
image: "osm2vectortiles/export"
env_file: .env
command: ./export-list.sh
volumes:
- ./import:/import
- ./export:/export
- ./osm2vectortiles.tm2source:/tm2source
links:
- postgres

Wyświetl plik

@ -0,0 +1,51 @@
version: '2'
services:
generate-jobs:
image: "osm2vectortiles/generate-jobs"
env_file: .env
volumes:
- ./export:/data/export
links:
- rabbitmq:rabbitmq
generate-diff-jobs:
image: "osm2vectortiles/generate-jobs"
env_file: .env
command: ./generate_list_jobs.sh
links:
- rabbitmq:rabbitmq
merge-jobs:
image: "osm2vectortiles/merge-jobs"
env_file: .env
volumes:
- ./export:/data/export
links:
- rabbitmq:rabbitmq
export-worker:
image: "osm2vectortiles/rabbitmq:management"
env_file: .env
command: ./export-worker.sh
links:
- rabbitmq:rabbitmq
env_file: .env
environment:
RENDER_TIMEOUT: "300"
TILE_TIMEOUT: "1800000"
rabbitmq:
image: "osm2vectortiles/rabbitmq:management"
env_file: .env
ports:
- "15672"
- "5672"
volumes:
- rabbitdata:/var/lib/rabbitmq
environment:
RABBITMQ_DEFAULT_USER: "osm"
RABBITMQ_DEFAULT_PASS: "osm"
RABBITMQ_HEARTBEAT: "600"
create-extracts:
image: "osm2vectortiles/create-extracts"
env_file: .env
volumes:
- ./export:/data/export
volumes:
rabbitdata:

Wyświetl plik

@ -1,176 +1,46 @@
pgdata:
image: "tianon/true"
volumes:
- /var/lib/postgresql/data
rabbitdata:
image: "tianon/true"
volumes:
- /var/lib/rabbitmq
cache:
image: "tianon/true"
volumes:
- /data/cache
postgres:
image: "osm2vectortiles/postgis"
volumes_from:
- pgdata
ports:
- "5432"
environment:
POSTGRES_DB: osm
POSTGRES_USER: osm
POSTGRES_PASSWORD: osm
import-osm:
image: "osm2vectortiles/import-osm"
command: ./import-pbf.sh
volumes:
- ./import:/data/import
volumes_from:
- cache
links:
- postgres:postgres
environment:
DIFFS: 'true'
import-osm-diff:
image: "osm2vectortiles/import-osm"
command: ./import-diff.sh
volumes:
- ./import:/data/import
- ./export:/data/export
- ./src/import-osm:/usr/src/app
volumes_from:
- cache
links:
- postgres:postgres
update-osm-diff:
image: "osm2vectortiles/import-osm"
command: ./import-osmupdate.sh
volumes:
- ./import:/data/import
environment:
OSM_UPDATE_BASEURL: "http://download.geofabrik.de/europe/liechtenstein-updates/"
merge-osm-diff:
image: "osm2vectortiles/import-osm"
command: ./import-mergediffs.sh
volumes:
- ./import:/data/import
import-external:
image: "osm2vectortiles/import-external"
links:
- postgres:postgres
import-labels:
image: "osm2vectortiles/import-external"
command: ./import-labels.sh
links:
- postgres:postgres
import-natural-earth:
image: "osm2vectortiles/import-external"
command: ./import-natural-earth.sh
links:
- postgres:postgres
import-water:
image: "osm2vectortiles/import-external"
command: ./import-water.sh
links:
- postgres:postgres
generate-jobs:
image: "osm2vectortiles/generate-jobs"
volumes:
- ./export:/data/export
links:
- rabbitmq:rabbitmq
generate-diff-jobs:
image: "osm2vectortiles/generate-jobs"
command: ./generate_list_jobs.sh
volumes:
- ./export:/data/export
links:
- rabbitmq:rabbitmq
merge-jobs:
image: "osm2vectortiles/merge-jobs"
volumes:
- ./export:/data/export
links:
- rabbitmq:rabbitmq
export-worker:
image: "osm2vectortiles/export"
command: ./export-worker.sh
volumes:
- ./osm2vectortiles.tm2source:/data/tm2source
links:
- postgres:postgres
- rabbitmq:rabbitmq
environment:
AWS_ACCESS_KEY_ID: "${AWS_ACCESS_KEY_ID}"
AWS_SECRET_ACCESS_KEY: "${AWS_SECRET_ACCESS_KEY}"
AWS_S3_HOST: "${AWS_S3_HOST}"
BUCKET_NAME: "osm2vectortiles-testing"
RENDER_TIMEOUT: "300"
TILE_TIMEOUT: "1800000"
export:
image: "osm2vectortiles/export"
command: ./export-local.sh
volumes:
- ./export:/data/export
- ./osm2vectortiles.tm2source:/data/tm2source
links:
- postgres:postgres
environment:
# Around zurich
BBOX: "-22.5,79.6871841545,-21.09375,79.9359182463"
MIN_ZOOM: "0"
MAX_ZOOM: "14"
export-list:
image: "osm2vectortiles/export"
command: ./export-list.sh
volumes:
- ./export:/data/export
- ./osm2vectortiles.tm2source:/data/tm2source
links:
- postgres:postgres
import-sql:
image: "osm2vectortiles/import-sql"
links:
- postgres:postgres
environment:
SQL_CREATE_INDIZES: 'false'
mapbox-studio:
image: "osm2vectortiles/mapbox-studio"
volumes:
- ./osm2vectortiles.tm2source:/projects/osm2vectortiles.tm2source
links:
- postgres:db
ports:
- "3000:3000"
rabbitmq:
image: "osm2vectortiles/rabbitmq:management"
ports:
- "15672"
- "5672"
volumes_from:
- rabbitdata
environment:
RABBITMQ_DEFAULT_USER: "osm"
RABBITMQ_DEFAULT_PASS: "osm"
RABBITMQ_HEARTBEAT: "600"
create-extracts:
image: "osm2vectortiles/create-extracts"
volumes:
- ./export:/data/export
environment:
S3_ACCESS_KEY: "${AWS_ACCESS_KEY_ID}"
S3_SECRET_KEY: "${AWS_SECRET_ACCESS_KEY}"
compare-visual:
image: "osm2vectortiles/compare-visual"
ports:
- "3030:3030"
volumes:
- ./osm2vectortiles.tm2source:/data/tm2source
links:
- postgres:db
mapping-qa-report:
image: "osm2vectortiles/mapping-qa-report"
links:
- postgres:db
volumes:
- ./export:/data
version: '2'
services:
postgres:
image: "osm2vectortiles/postgis"
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- "5432"
env_file: .env
import-osm:
image: "osm2vectortiles/import-osm"
command: ./import-pbf.sh
env_file: .env
volumes:
- ./import:/import
- cache:/cache
links:
- postgres:postgres
import-external:
image: "osm2vectortiles/import-external"
env_file: .env
links:
- postgres:postgres
export-mbtiles:
image: "osm2vectortiles/export"
command: ./export-local.sh
volumes:
- ./export:/export
- ./osm2vectortiles.tm2source:/tm2source
links:
- postgres:postgres
env_file: .env
environment:
BBOX: "-22.5,79.6871841545,-21.09375,79.9359182463"
MIN_ZOOM: "0"
MAX_ZOOM: "14"
import-sql:
image: "osm2vectortiles/import-sql"
env_file: .env
links:
- postgres:postgres
environment:
SQL_CREATE_INDIZES: 'false'
volumes:
pgdata:
cache:

Wyświetl plik

@ -130,10 +130,10 @@ def upload_mbtiles(mbtiles_file):
"""
config_file = os.getenv('S3_CONFIG_FILE',
os.path.join(os.environ['HOME'], '.s3cfg'))
access_key = os.environ['S3_ACCESS_KEY']
secret_key = os.environ['S3_SECRET_KEY']
bucket_name = os.getenv('S3_BUCKET_NAME', 'osm2vectortiles-downloads')
prefix = os.getenv('S3_PREFIX', 'v{}/{}/'.format(VERSION, 'extracts'))
access_key = os.environ['AWS_ACCESS_KEY_ID']
secret_key = os.environ['AWS_SECRET_ACCESS_KEY']
bucket_name = os.getenv('AWS_S3_DOWNLOAD_BUCKET_NAME', 'osm2vectortiles-downloads')
prefix = os.getenv('AWS_S3_PREFIX', 'v{}/{}/'.format(VERSION, 'extracts'))
subprocess.check_call([
's3cmd',

Wyświetl plik

@ -18,8 +18,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
python-dev \
&& rm -rf /var/lib/apt/lists/
VOLUME /data/tm2source /data/export
ENV SOURCE_PROJECT_DIR=/data/tm2source EXPORT_DIR=/data/export TILELIVE_BIN=tl
VOLUME /tm2source /export
ENV SOURCE_PROJECT_DIR=/tm2source EXPORT_DIR=/export TILELIVE_BIN=tl
COPY requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt

Wyświetl plik

@ -5,7 +5,7 @@ set -o nounset
source utils.sh
readonly LIST_FILE=${RENDER_SCHEME:-"$EXPORT_DIR/tiles.txt"}
readonly LIST_FILE="$EXPORT_DIR/tiles.txt"
function export_local_mbtiles() {
local mbtiles_name="tiles.mbtiles"

Wyświetl plik

@ -5,13 +5,13 @@ set -o nounset
source utils.sh
readonly BUCKET_NAME=${BUCKET_NAME:-osm2vectortiles-jobs}
readonly BUCKET_NAME=${AWS_S3_JOB_BUCKET_NAME:-osm2vectortiles-jobs}
readonly RABBITMQ_URI=${RABBITMQ_URI:-"amqp://osm:osm@rabbitmq:5672/?blocked_connection_timeout=1200&heartbeat=0"}
function export_remote_mbtiles() {
exec python -u export_remote.py "$RABBITMQ_URI" \
--tm2source="$DEST_PROJECT_DIR" \
--bucket="$BUCKET_NAME"
--bucket="$"
}
function main() {

Wyświetl plik

@ -2,8 +2,6 @@
set -o errexit
set -o pipefail
readonly SOURCE_PROJECT_DIR=${SOURCE_PROJECT_DIR:-/data/tm2source}
readonly EXPORT_DIR=${EXPORT_DIR:-/data/export}
readonly DEST_PROJECT_DIR="/tmp/project"
readonly DEST_PROJECT_FILE="${DEST_PROJECT_DIR%%/}/data.yml"
@ -21,11 +19,11 @@ function cleanup_dest_project() {
# replace database connection with postgis container connection
function replace_db_connection() {
local replace_expr_1="s|host: .*|host: \"$POSTGRES_PORT_5432_TCP_ADDR\"|g"
local replace_expr_2="s|port: .*|port: \"$DB_PORT_5432_TCP_PORT\"|g"
local replace_expr_3="s|dbname: .*|dbname: \"$POSTGRES_ENV_POSTGRES_USER\"|g"
local replace_expr_4="s|user: .*|user: \"$POSTGRES_ENV_POSTGRES_DB\"|g"
local replace_expr_5="s|password: .*|password: \"$POSTGRES_ENV_POSTGRES_PASSWORD\"|g"
local replace_expr_1="s|host: .*|host: \"$POSTGRES_HOST\"|g"
local replace_expr_2="s|port: .*|port: \"5432\"|g"
local replace_expr_3="s|dbname: .*|dbname: \"$POSTGRES_USER\"|g"
local replace_expr_4="s|user: .*|user: \"$POSTGRES_DB\"|g"
local replace_expr_5="s|password: .*|password: \"$POSTGRES_PASSWORD\"|g"
sed -i "$replace_expr_1" "$DEST_PROJECT_FILE"
sed -i "$replace_expr_2" "$DEST_PROJECT_FILE"

Wyświetl plik

@ -1,6 +1,6 @@
FROM osm2vectortiles/postgis
ENV IMPORT_DATA_DIR=/data/import \
NATURAL_EARTH_DB=/data/import/natural_earth_vector.sqlite
ENV IMPORT_DATA_DIR=/import \
NATURAL_EARTH_DB=/import/natural_earth_vector.sqlite
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
@ -21,10 +21,9 @@ RUN wget --quiet http://data.openstreetmapdata.com/simplified-water-polygons-com
WORKDIR /usr/src/app
COPY ./clean-natural-earth.sh /usr/src/app/
RUN wget --quiet http://naciscdn.org/naturalearth/packages/natural_earth_vector.sqlite.zip \
&& unzip -oj natural_earth_vector.sqlite.zip -d /data/import \
&& unzip -oj natural_earth_vector.sqlite.zip -d /import \
&& rm natural_earth_vector.sqlite.zip \
&& ./usr/src/app/clean-natural-earth.sh
&& /usr/src/app/clean-natural-earth.sh
COPY . /usr/src/app
CMD ["./import.sh"]

Wyświetl plik

@ -26,7 +26,7 @@ function import_geojson() {
}
function import_labels() {
echo "Inserting labels into $OSM_DB"
echo "Inserting labels"
import_geojson "$SEAS_GEOJSON" "custom_seas"
import_geojson "$STATES_GEOJSON" "custom_states"

Wyświetl plik

@ -5,9 +5,6 @@ set -o nounset
source sql.sh
readonly IMPORT_DATA_DIR=${IMPORT_DATA_DIR:-/data/import}
readonly NATURAL_EARTH_SQLITE_FILE="$IMPORT_DATA_DIR/natural_earth_vector.sqlite"
function import_natural_earth() {
echo "Importing Natural Earth to PostGIS"
PGCLIENTENCODING=LATIN1 ogr2ogr \
@ -21,7 +18,7 @@ function import_natural_earth() {
-lco DIM=2 \
-nlt GEOMETRY \
-overwrite \
"$NATURAL_EARTH_SQLITE_FILE"
"$NATURAL_EARTH_DB"
}
import_natural_earth

Wyświetl plik

@ -3,12 +3,11 @@ set -o errexit
set -o pipefail
set -o nounset
readonly IMPORT_DATA_DIR=${IMPORT_DATA_DIR:-/data/import}
source sql.sh
readonly WATER_POLYGONS_FILE="$IMPORT_DATA_DIR/water_polygons.shp"
readonly SIMPLIFIED_WATER_POLYGONS_FILE="$IMPORT_DATA_DIR/simplified_water_polygons.shp"
source sql.sh
function import_shp() {
local shp_file=$1
local table_name=$2

Wyświetl plik

@ -3,15 +3,16 @@ set -o errexit
set -o pipefail
set -o nounset
readonly PGCONN="dbname=$POSTGRES_ENV_POSTGRES_DB user=$POSTGRES_ENV_POSTGRES_USER host=$POSTGRES_PORT_5432_TCP_ADDR port=5432"
readonly POSTGRES_HOST=${POSTGRES_HOST:-"postgres"}
readonly PGCONN="dbname=$POSTGRES_DB user=$POSTGRES_USER host=$POSTGRES_HOST password=$POSTGRES_PASSWORD port=5432"
function exec_psql() {
PGPASSWORD=$POSTGRES_ENV_POSTGRES_PASSWORD psql \
PGPASSWORD="$POSTGRES_PASSWORD" psql \
-v ON_ERROR_STOP=1 \
--host="$POSTGRES_PORT_5432_TCP_ADDR" \
--host="$POSTGRES_HOST" \
--port="5432" \
--dbname="$POSTGRES_ENV_POSTGRES_DB" \
--username="$POSTGRES_ENV_POSTGRES_USER"
--dbname="$POSTGRES_DB" \
--username="$POSTGRES_USER"
}
function exec_sql_file() {

Wyświetl plik

@ -1,4 +1,4 @@
FROM golang:1.4
FROM golang:1.5.3
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
@ -26,9 +26,11 @@ RUN apt-get purge -y --auto-remove \
g++ gcc libc6-dev make git \
&& rm -rf /var/lib/apt/lists/*
VOLUME /data/import /data/cache
ENV IMPORT_DATA_DIR=/data/import \
IMPOSM_CACHE_DIR=/data/cache \
VOLUME /import /cache
ENV IMPORT_DATA_DIR=/import \
IMPOSM_CACHE_DIR=/cache \
IMPOSM_DIFF_DIR=/import \
IMPOSM_TILE_DIR=/import \
MAPPING_YAML=/usr/src/app/mapping.yml
WORKDIR /usr/src/app

Wyświetl plik

@ -4,7 +4,7 @@ set -o pipefail
set -o nounset
source import.sh
readonly TILELIST=${TILELIST:-/data/export/tiles.txt}
readonly TILELIST="$IMPOSM_TILE_DIR/tiles.txt"
function main() {
if [ "$(ls -A $IMPORT_DATA_DIR/*.osc.gz 2> /dev/null)" ]; then

Wyświetl plik

@ -3,9 +3,7 @@ set -o errexit
set -o pipefail
set -o nounset
readonly IMPOSM_DIFF_DIR=${IMPOSM_DIFF_DIR:-/data/import}
readonly IMPOSM_CACHE_DIR=${IMPOSM_CACHE_DIR:-/data/cache}
readonly PG_CONNECT="postgis://$POSTGRES_ENV_POSTGRES_USER:$POSTGRES_ENV_POSTGRES_PASSWORD@$POSTGRES_PORT_5432_TCP_ADDR/$POSTGRES_ENV_POSTGRES_DB"
readonly PG_CONNECT="postgis://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST/$POSTGRES_DB"
function import_pbf() {
local pbf_file="$1"
@ -25,6 +23,17 @@ function import_pbf() {
update_scaleranks
}
function exec_sql_file() {
local file_name="$1"
PGPASSWORD="$POSTGRES_PASSWORD" psql \
-v ON_ERROR_STOP=1 \
--host="$POSTGRES_HOST" \
--port="5432" \
--dbname="$POSTGRES_DB" \
--username="$POSTGRES_USER" \
-f "$file_name"
}
function update_points() {
echo "Update osm_place_polygon with point geometry"
exec_sql_file "point_update.sql"
@ -32,7 +41,7 @@ function update_points() {
function update_scaleranks() {
echo "Update scaleranks from Natural Earth data"
exec_sql_file "update_scaleranks.sql"
exec_sql_file "update_scaleranks.sql" || echo 'No NaturalEarth data found in database' && exit 500
}
function create_osm_water_point_table() {
@ -41,12 +50,10 @@ function create_osm_water_point_table() {
}
function subdivide_polygons() {
echo "Subdividing polygons in $OSM_DB"
echo "Subdividing polygons"
exec_sql_file "subdivide_polygons.sql"
}
function import_pbf_diffs() {
local diffs_file="$1"
local tile_list="$2"

Wyświetl plik

@ -1,7 +1,7 @@
DROP TABLE IF EXISTS osm_water_point CASCADE;
CREATE TABLE osm_water_point AS
SELECT id,
topoint(geometry) AS geometry,
ST_PointOnSurface(geometry) AS geometry,
name, name_fr, name_en, name_de,
name_es, name_ru, name_zh,
area

Wyświetl plik

@ -7,12 +7,12 @@ readonly SQL_CREATE_INDIZES=${SQL_CREATE_INDIZES:-false}
function exec_sql_file() {
local file_name="$1"
PGPASSWORD=$POSTGRES_ENV_POSTGRES_PASSWORD psql \
PGPASSWORD="$POSTGRES_PASSWORD" psql \
-v ON_ERROR_STOP=1 \
--host="$POSTGRES_PORT_5432_TCP_ADDR" \
--host="$POSTGRES_HOST" \
--port="5432" \
--dbname="$POSTGRES_ENV_POSTGRES_DB" \
--username="$POSTGRES_ENV_POSTGRES_USER" \
--dbname="$POSTGRES_DB" \
--username="$POSTGRES_USER" \
-f "$file_name"
}
@ -23,7 +23,7 @@ function main() {
exec_sql_file "$SQL_FUNCTIONS_FILE"
echo "Creating generated functions"
exec_sql_file "$SQL_GENERATED_FILE"
echo "Creating layers in $OSM_DB"
echo "Creating layers"
exec_sql_file "${SQL_LAYERS_DIR}admin.sql"
exec_sql_file "${SQL_LAYERS_DIR}aeroway.sql"
exec_sql_file "${SQL_LAYERS_DIR}barrier_line.sql"
@ -45,10 +45,10 @@ function main() {
exec_sql_file "${SQL_LAYERS_DIR}motorway_junction.sql"
if [ "$SQL_CREATE_INDIZES" = true ] ; then
echo "Create index in $OSM_DB"
echo "Create additional expression indizes"
exec_sql_file "${SQL_INDIZES_FILE}"
else
echo "Omitting index creation in $OSM_DB"
echo "Omitting index creation"
fi
}

Wyświetl plik

@ -1,4 +1,4 @@
FROM golang:1.5.3
FROM osm2vectortiles/import-osm
RUN apt-get update \
&& apt-get install -y --no-install-recommends postgresql-client \

Wyświetl plik

@ -3,23 +3,15 @@ set -o errexit
set -o pipefail
set -o nounset
readonly DB_HOST=$DB_PORT_5432_TCP_ADDR
readonly DB_PORT=$DB_PORT_5432_TCP_PORT
readonly OSM_NAME=${OSM_NAME:-osm}
readonly OSM_USER=${OSM_USER:-osm}
readonly OSM_PASSWORD=${OSM_PASSWORD:-osm}
readonly EXPORT_DIR=${EXPORT_DIR:-"/data/"}
function exec_sql_file() {
local sql_file=$1
PG_PASSWORD=$OSM_PASSWORD psql \
--host="$DB_HOST" \
--port=5432 \
--dbname="$OSM_NAME" \
--username="$OSM_USER" \
local file_name="$1"
PGPASSWORD="$POSTGRES_PASSWORD" psql \
-v ON_ERROR_STOP=1 \
-a -f "$sql_file"
--host="$POSTGRES_HOST" \
--port="5432" \
--dbname="$POSTGRES_DB" \
--username="$POSTGRES_USER" \
-f "$file_name"
}
function export_tsv() {