Final instructions

This commit is contained in:
Juan Ignacio Sánchez Lara
2018-05-10 15:50:24 +02:00
parent c3a3f5545c
commit 1614495919
2 changed files with 49 additions and 18 deletions

View File

@@ -17,6 +17,55 @@ SELECT geocode_ip(Array['1.0.16.0', '::ffff:1.0.16.0'])
4. Rename the uploaded table as `latest_ip_address_locations`
5. Run the `sql/build_data_table` script to update the table
# Update steps
## Option A: generate a new `ip_address_locations` table at geocoder user
If the geocoder database is a CARTO user, do these steps:
1. Import `GeoLite2-City-Blocks-IPv4.csv` and rename it to `latest_ip_address_locations`.
2. Import `GeoLite2-City-Blocks-IPv6.csv` and rename it to `latest_ip6_address_locations`.
3. If you want to create a backup of the previous table, do this:
```sql
CREATE TABLE ip_address_locations_backup as
select * from ip_address_locations;
```
4. Clear previous table:
```sql
TRUNCATE ip_address_locations;
```
5. Load the new values:
```sql
set statement_timeout = '20min';
INSERT INTO ip_address_locations (the_geom, network_start_ip) SELECT the_geom, ('::ffff:' || split_part(network, '/', 1))::inet FROM latest_ip_address_locations;
INSERT INTO ip_address_locations (the_geom, network_start_ip) SELECT the_geom, split_part(network, '/', 1)::inet FROM latest_ip6_address_locations;
```
## Option B: load a dump of the table
If the geocoder database is not a CARTO user, do these steps:
1. Perform option A in any user (it can even be a staging user). If you need to create the table, check `40_ipaddr.sql`.
2. Generate a dump of the file at that user database:
```sql
\copy (select * from ip_address_locations) TO /tmp/ip_address_locations.dump;
```
3. Copy the file to the remote server.
4. Perform steps A.3 and A.4.
5. Load the new data (takes ~10 minutes):
```sql
set statement_timeout = '20min';
\copy ip_address_locations from /tmp/ip_address_locations.dump
```
# Tables
### ip_address_locations

View File

@@ -6,21 +6,3 @@ DELETE FROM ip_address_locations;
-- Updates table with new source data
INSERT INTO ip_address_locations (the_geom, network_start_ip) SELECT the_geom, ('::ffff:' || split_part(network, '/', 1))::inet FROM latest_ip_address_locations;
DROP TABLE latest_ip_address_locations;
-- Update table
-- Assumptions (read https://github.com/CartoDB/data-services/tree/master/geocoder/ip-addresses#creation-steps)
-- - latest_ip_address_locations is the GeoLite2-City-Blocks-IPv4.csv table
-- - latest_ip6_address_locations is the GeoLite2-City-Blocks-IPv6.csv table
-- - For option B (exported file), export from valid `ip_address_locations` table with
-- \copy (select * from ip_address_locations) TO /tmp/ip_address_locations.dump;
CREATE TABLE ip_address_locations_backup as select * from ip_address_locations;
TRUNCATE ip_address_locations;
-- OPTION A) From scratch
INSERT INTO ip_address_locations (the_geom, network_start_ip) SELECT the_geom, ('::ffff:' || split_part(network, '/', 1))::inet FROM latest_ip_address_locations;
INSERT INTO ip_address_locations (the_geom, network_start_ip) SELECT the_geom, split_part(network, '/', 1)::inet FROM latest_ip6_address_locations;
-- OPTION B) From exported file (took 9 minutes in staging)
\copy ip_address_locations from /tmp/ip_address_locations.dump