I'm installing a instance of CartoDB in AWS/Ubuntu 12.04, and I'm having a hard time trying to georeference a column with textual addresses.
I know that the data I'm trying to georeference is ok since I uploaded it in an online CartoDB account and it's working there, so it must be a local problem. I've tried with different CartoDB versions, and I get different errors:
18:54:42 resque.1 | ** [18:54:42 2014-03-24] 7121: got: (Job{geocodings} | Resque::GeocoderJobs | [{"job_id"=>1}]) 18:54:42 resque.1 | ** [18:54:42 2014-03-24] 7199: resque-1.23.0: Processing geocodings since 1395687282 18:54:42 resque.1 | ** [18:54:42 2014-03-24] 7121: resque-1.23.0: Forked 7199 at 1395687282 18:54:44 web.1 | (0.009665s) SELECT * FROM "geocodings" WHERE "id" = 1 18:54:44 web.1 | (0.003518s) SELECT * FROM "user_tables" WHERE ("user_tables"."id" = 1) LIMIT 1 18:54:44 web.1 | (0.004384s) SELECT * FROM "users" WHERE ("users"."id" = 1) LIMIT 1 18:54:44 web.1 | [pool] Creating a new connection for cartodb_dev_user_1_db
ostgres (1) 18:54:44 web.1 | (0.005848s) BEGIN 18:54:44 web.1 | (0.000490s) UPDATE "geocodings" SET "updated_at" = '2014-03-24 18:54:43.110957+0000', "state" = 'started' WHERE ("id" = 1) 18:54:44 web.1 | (0.002168s) COMMIT 18:54:44 web.1 | (0.000164s) SET standard_conforming_strings = ON 18:54:44 web.1 | (0.000165s) SET client_min_messages = 'WARNING' 18:54:44 web.1 | (0.000161s) SET DateStyle = 'ISO' 18:54:44 web.1 | (0.050511s) 18:54:44 web.1 | ALTER TABLE map_03_2 18:54:44 web.1 | ADD COLUMN cartodb_georef_status BOOLEAN DEFAULT FALSE 18:54:44 web.1 | 18:54:44 web.1 | (0.001902s) 18:54:44 web.1 | SELECT md5(trim(both from regexp_replace(regexp_replace(concat(address), E'[\n\r]+', ' ', 'g'), E'"', '', 'g'))) AS searchtext 18:54:44 web.1 | FROM map_03_2 18:54:44 web.1 | WHERE cartodb_georef_status IS false OR cartodb_georef_status IS NULL 18:54:44 web.1 | GROUP BY searchtext 18:54:44 web.1 | LIMIT 10 OFFSET 0 18:54:44 web.1 | 18:54:44 web.1 | (0.000194s) DROP TABLE IF EXISTS geocoding_cache_1395687283 18:54:44 web.1 | [Rollbar] Scheduling payload 18:54:44 web.1 | [Rollbar] Sending payload 18:54:44 web.1 | [Rollbar] Got unexpected status code from Rollbar api: 401 18:54:44 web.1 | [Rollbar] Response: { 18:54:44 web.1 | "err": 1, 18:54:44 web.1 | "message": "unauthorized" 18:54:44 web.1 | } 18:54:44 web.1 | [Rollbar] Details: https://rollbar.com/instance/uuid?uuid=3a66799c-34fa-4733-bf78-0a251fd5bf24 (only available if report was successful) 18:54:44 web.1 | (0.000767s) COPY ( 18:54:44 web.1 | SELECT trim(both from regexp_replace(regexp_replace(concat(address), E'[\n\r]+', ' ', 'g'), E'"', '', 'g')) as recId, trim(both from regexp_replace(regexp_replace(concat(address), E'[\n\r]+', ' ', 'g'), E'"', '', 'g')) as searchText 18:54:44 web.1 | FROM map_03_2 18:54:44 web.1 | WHERE cartodb_georef_status IS FALSE OR cartodb_georef_status IS NULL 18:54:44 web.1 | GROUP BY recId 18:54:44 web.1 | LIMIT 1000000 18:54:44 web.1 | ) TO STDOUT (FORMAT csv, HEADER) 18:54:44 web.1 | ETHON: Libcurl initialized 18:54:44 web.1 | ETHON: performed EASY url= response_code=0 return_code=url_malformat total_time=0.0 18:54:44 web.1 | ETHON: performed EASY url= response_code=0 return_code=url_malformat total_time=0.0 18:54:44 web.1 | 18:54:44 web.1 | 18:54:44 web.1 | Started GET "/api/v1/geocodings/1" for (IP) at 2014-03-24 18:54:44 +0000 18:54:44 web.1 | Processing by Api::Json::GeocodingsController#show as JSON 18:54:44 web.1 | Parameters: {"id"=>"1"} 18:54:44 web.1 | (0.017074s) SELECT * FROM "users" WHERE ("username" = 'ec2-54-185-162-75') LIMIT 1 18:54:44 web.1 | (0.014046s) SELECT * FROM "geocodings" WHERE (("geocodings"."user_id" = 1) AND ("id" = '1')) ORDER BY "created_at" DESC LIMIT 1 18:54:44 web.1 | (0.004323s) SELECT * FROM "user_tables" WHERE ("user_tables"."id" = 1) LIMIT 1 18:54:44 web.1 | (0.000345s) SELECT * FROM "users" WHERE ("users"."id" = 1) LIMIT 1 18:54:44 web.1 | [pool] Found a connection for cartodb_dev_user_1_db
ostgres (2) 18:54:44 web.1 | Completed 200 OK in 286ms (Views: 0.8ms | Models: 0.0ms) 18:54:44 resque.1 | 2/3 18:54:45 web.1 | (0.008280s) BEGIN 18:54:45 web.1 | (0.003983s) UPDATE "geocodings" SET "updated_at" = '2014-03-24 18:54:44.365433+0000', "remote_id" = 'c3489b58b38511e38e7722000aed033e' WHERE ("id" = 1) 18:54:45 web.1 | (0.002151s) COMMIT 18:54:45 web.1 | (0.000305s) BEGIN 18:54:45 web.1 | (0.000401s) UPDATE "geocodings" SET "total_rows" = 3, "processed_rows" = 2, "updated_at" = '2014-03-24 18:54:44.530939+0000', "state" = 'completed' WHERE ("id" = 1) 18:54:45 web.1 | (0.001879s) COMMIT 18:54:45 web.1 | 18:54:45 web.1 | 18:54:45 web.1 | Started GET "/api/v1/geocodings/1" for (IP) at 2014-03-24 18:54:45 +0000 18:54:45 web.1 | Processing by Api::Json::GeocodingsController#show as JSON 18:54:45 web.1 | Parameters: {"id"=>"1"} 18:54:45 web.1 | (0.002891s) SELECT * FROM "users" WHERE ("username" = 'ec2-54-185-162-75') LIMIT 1 18:54:45 web.1 | (0.000345s) SELECT * FROM "geocodings" WHERE (("geocodings"."user_id" = 1) AND ("id" = '1')) ORDER BY "created_at" DESC LIMIT 1 18:54:45 web.1 | (0.003857s) SELECT * FROM "user_tables" WHERE ("user_tables"."id" = 1) LIMIT 1 18:54:45 web.1 | (0.000350s) SELECT * FROM "users" WHERE ("users"."id" = 1) LIMIT 1 18:54:45 web.1 | [pool] Found a connection for cartodb_dev_user_1_db
ostgres (2) 18:54:45 web.1 | Completed 200 OK in 148ms (Views: 0.9ms | Models: 0.0ms) 18:54:47 web.1 | (0.000256s) BEGIN 18:54:47 web.1 | (0.000428s) UPDATE "geocodings" SET "updated_at" = '2014-03-24 18:54:46.543169+0000', "cache_hits" = NULL WHERE ("id" = 1) 18:54:47 web.1 | (0.001688s) COMMIT 18:54:47 web.1 | 18:54:47 web.1 | 18:54:47 web.1 | Started GET "/api/v1/geocodings/1" for (IP) at 2014-03-24 18:54:47 +0000 18:54:47 web.1 | Processing by Api::Json::GeocodingsController#show as JSON 18:54:47 web.1 | Parameters: {"id"=>"1"} 18:54:47 web.1 | (0.016115s) SELECT * FROM "users" WHERE ("username" = 'ec2-54-185-162-75') LIMIT 1 18:54:47 web.1 | (0.008763s) SELECT * FROM "geocodings" WHERE (("geocodings"."user_id" = 1) AND ("id" = '1')) ORDER BY "created_at" DESC LIMIT 1 18:54:47 web.1 | (0.000302s) SELECT * FROM "user_tables" WHERE ("user_tables"."id" = 1) LIMIT 1 18:54:47 web.1 | (0.000353s) SELECT * FROM "users" WHERE ("users"."id" = 1) LIMIT 1 18:54:47 web.1 | [pool] Found a connection for cartodb_dev_user_1_db
ostgres (2) 18:54:47 web.1 | PG::Error: ERROR: relation "cdb.geo_c3489b58b38511e38e7722000aed033e" does not exist 18:54:47 web.1 | LINE 1: SELECT NULL FROM "cdb.geo_c3489b58b38511e38e7722000aed033e" ... 18:54:47 web.1 | ^: SELECT NULL FROM "cdb.geo_c3489b58b38511e38e7722000aed033e" LIMIT 1 18:54:47 web.1 | (0.013806s) 18:54:47 web.1 | CREATE TABLE cdb.geo_c3489b58b38511e38e7722000aed033e ( 18:54:47 web.1 | recId text, 18:54:47 web.1 | SeqNumber int, 18:54:47 web.1 | seqLength int, 18:54:47 web.1 | displayLatitude float, 18:54:47 web.1 | displayLongitude float 18:54:47 web.1 | ); 18:54:47 web.1 | PG::Error: ERROR: relation "cdb.geo_c3489b58b38511e38e7722000aed033e" does not exist 18:54:47 web.1 | LINE 1: SELECT NULL FROM "cdb.geo_c3489b58b38511e38e7722000aed033e" ... 18:54:47 web.1 | ^: SELECT NULL FROM "cdb.geo_c3489b58b38511e38e7722000aed033e" LIMIT 1 18:54:47 web.1 | (0.000213s) COPY cdb.geo_c3489b58b38511e38e7722000aed033e FROM STDIN (FORMAT csv) 18:54:47 web.1 | PG::Error: ERROR: relation "cdb.geo_c3489b58b38511e38e7722000aed033e" does not exist 18:54:47 web.1 | LINE 1: SELECT NULL FROM "cdb.geo_c3489b58b38511e38e7722000aed033e" ... 18:54:47 web.1 | ^: SELECT NULL FROM "cdb.geo_c3489b58b38511e38e7722000aed033e" LIMIT 1 18:54:47 web.1 | (0.102498s) 18:54:47 web.1 | UPDATE map_03_2 AS dest 18:54:47 web.1 | SET the_geom = ST_GeomFromText( 18:54:47 web.1 | 'POINT(' || orig.displayLongitude || ' ' || 18:54:47 web.1 | orig.displayLatitude || ')', 4326 18:54:47 web.1 | ), 18:54:47 web.1 | cartodb_georef_status = true 18:54:47 web.1 | FROM cdb.geo_c3489b58b38511e38e7722000aed033e AS orig 18:54:47 web.1 | WHERE trim(both from regexp_replace(regexp_replace(concat(address), E'[\n\r]+', ' ', 'g'), E'"', '', 'g')) = orig.recId 18:54:47 web.1 | 18:54:47 web.1 | (0.000225s) DROP TABLE IF EXISTS geocoding_cache_1395687283 18:54:47 web.1 | [Rollbar] Scheduling payload 18:54:47 web.1 | [Rollbar] Sending payload 18:54:47 web.1 | Completed 200 OK in 185ms (Views: 0.9ms | Models: 0.0ms) 18:54:47 resque.1 | ** [18:54:47 2014-03-24] 7199: done: (Job{geocodings} | Resque::GeocoderJobs | [{"job_id"=>1}])
Started POST "/api/v1/geocodings" for (IP) at 2014-03-24 18:11:22 +000018:11:22 web.1 | Processing by Api::Json::GeocodingsController#create as JSON18:11:22 web.1 | Parameters: {"formatter"=>"{address}", "table_name"=>"map_03_2"}18:11:22 web.1 | (0.000638s) SELECT * FROM "users" WHERE ("username" = 'ec2-54-185-162-75') LIMIT 118:11:22 web.1 | (0.007037s) SELECT * FROM "user_tables" WHERE (("user_id" = 'b249cedd-dc33-49eb-86f1-a53f1ca17731') AND ("name" = 'map_03_2')) ORDER BY "id" DESC LIMIT 118:11:22 web.1 | (0.012165s) SELECT "pg_attribute"."attname" AS "name", CAST("pg_attribute"."atttypid" AS integer) AS "oid", format_type("pg_type"."oid", "pg_attribute"."atttypmod") AS "db_type", pg_get_expr("pg_attrdef"."adbin", "pg_class"."oid") AS "default", NOT "pg_attribute"."attnotnull" AS "allow_null", COALESCE(("pg_attribute"."attnum" = ANY("pg_index"."indkey")), false) AS "primary_key", "pg_namespace"."nspname" FROM "pg_class" INNER JOIN "pg_attribute" ON ("pg_attribute"."attrelid" = "pg_class"."oid") INNER JOIN "pg_type" ON ("pg_type"."oid" = "pg_attribute"."atttypid") INNER JOIN "pg_namespace" ON ("pg_namespace"."oid" = "pg_class"."relnamespace") LEFT OUTER JOIN "pg_attrdef" ON (("pg_attrdef"."adrelid" = "pg_class"."oid") AND ("pg_attrdef"."adnum" = "pg_attribute"."attnum")) LEFT OUTER JOIN "pg_index" ON (("pg_index"."indrelid" = "pg_class"."oid") AND ("pg_index"."indisprimary" IS TRUE)) WHERE (("pg_attribute"."attisdropped" IS FALSE) AND ("pg_attribute"."attnum" > 0) AND ("pg_class"."relname" = 'assets') AND ("pg_namespace"."nspname" !~* 'pg_*|information_schema')) ORDER BY "pg_attribute"."attnum"18:11:22 web.1 | Completed 422 Unprocessable Entity in 269ms (Views: 0.3ms | Models: 0.0ms)
17:30:32 web.1 | Started GET "/api/v1/tables/map_03_2/records?rows_per_page=40&page=0&mode=asc&order_by=cartodb_id&filter_column=&filter_value=&api_key=66fc98d3bddf79a6c0938f4282a2140fd9b00360" for (IP) at 2014-03-24 17:30:32 +000017:30:32 web.1 | [Rollbar] Reporting exception: The action 'index' could not be found for Api::Json::RecordsController17:30:32 web.1 | (0.000598s) SELECT * FROM "users" WHERE ("username" = 'ec2-54-185-162-75') LIMIT 117:30:32 web.1 | [Rollbar] Exception not reported because Rollbar is disabled17:30:32 web.1 | 17:30:32 web.1 | AbstractController::ActionNotFound (The action 'index' could not be found for Api::Json::RecordsController):
أكثر...
I know that the data I'm trying to georeference is ok since I uploaded it in an online CartoDB account and it's working there, so it must be a local problem. I've tried with different CartoDB versions, and I get different errors:
- v2.9.3 to v2.10.1 -> I upload the file, table is created, then Iselect 'georeference' in the proper column and seems that the job isprocessed by resque (progress bar appears in UI), two columns areadded (the geom (all values as null) and cartodb_georef_status (allvalues as false)), but they are not updated later with proper values.
18:54:42 resque.1 | ** [18:54:42 2014-03-24] 7121: got: (Job{geocodings} | Resque::GeocoderJobs | [{"job_id"=>1}]) 18:54:42 resque.1 | ** [18:54:42 2014-03-24] 7199: resque-1.23.0: Processing geocodings since 1395687282 18:54:42 resque.1 | ** [18:54:42 2014-03-24] 7121: resque-1.23.0: Forked 7199 at 1395687282 18:54:44 web.1 | (0.009665s) SELECT * FROM "geocodings" WHERE "id" = 1 18:54:44 web.1 | (0.003518s) SELECT * FROM "user_tables" WHERE ("user_tables"."id" = 1) LIMIT 1 18:54:44 web.1 | (0.004384s) SELECT * FROM "users" WHERE ("users"."id" = 1) LIMIT 1 18:54:44 web.1 | [pool] Creating a new connection for cartodb_dev_user_1_db
- v2.11.0, master -> I upload the file, table is created, then I select 'georeference' in the proper column and seems that an error happens even before the job is processed by resque (progress bar doesn't appear in UI).
Started POST "/api/v1/geocodings" for (IP) at 2014-03-24 18:11:22 +000018:11:22 web.1 | Processing by Api::Json::GeocodingsController#create as JSON18:11:22 web.1 | Parameters: {"formatter"=>"{address}", "table_name"=>"map_03_2"}18:11:22 web.1 | (0.000638s) SELECT * FROM "users" WHERE ("username" = 'ec2-54-185-162-75') LIMIT 118:11:22 web.1 | (0.007037s) SELECT * FROM "user_tables" WHERE (("user_id" = 'b249cedd-dc33-49eb-86f1-a53f1ca17731') AND ("name" = 'map_03_2')) ORDER BY "id" DESC LIMIT 118:11:22 web.1 | (0.012165s) SELECT "pg_attribute"."attname" AS "name", CAST("pg_attribute"."atttypid" AS integer) AS "oid", format_type("pg_type"."oid", "pg_attribute"."atttypmod") AS "db_type", pg_get_expr("pg_attrdef"."adbin", "pg_class"."oid") AS "default", NOT "pg_attribute"."attnotnull" AS "allow_null", COALESCE(("pg_attribute"."attnum" = ANY("pg_index"."indkey")), false) AS "primary_key", "pg_namespace"."nspname" FROM "pg_class" INNER JOIN "pg_attribute" ON ("pg_attribute"."attrelid" = "pg_class"."oid") INNER JOIN "pg_type" ON ("pg_type"."oid" = "pg_attribute"."atttypid") INNER JOIN "pg_namespace" ON ("pg_namespace"."oid" = "pg_class"."relnamespace") LEFT OUTER JOIN "pg_attrdef" ON (("pg_attrdef"."adrelid" = "pg_class"."oid") AND ("pg_attrdef"."adnum" = "pg_attribute"."attnum")) LEFT OUTER JOIN "pg_index" ON (("pg_index"."indrelid" = "pg_class"."oid") AND ("pg_index"."indisprimary" IS TRUE)) WHERE (("pg_attribute"."attisdropped" IS FALSE) AND ("pg_attribute"."attnum" > 0) AND ("pg_class"."relname" = 'assets') AND ("pg_namespace"."nspname" !~* 'pg_*|information_schema')) ORDER BY "pg_attribute"."attnum"18:11:22 web.1 | Completed 422 Unprocessable Entity in 269ms (Views: 0.3ms | Models: 0.0ms)
- v2.11.1 -> I upload the file, but I cannot view the rows in the UI (I got an error).
17:30:32 web.1 | Started GET "/api/v1/tables/map_03_2/records?rows_per_page=40&page=0&mode=asc&order_by=cartodb_id&filter_column=&filter_value=&api_key=66fc98d3bddf79a6c0938f4282a2140fd9b00360" for (IP) at 2014-03-24 17:30:32 +000017:30:32 web.1 | [Rollbar] Reporting exception: The action 'index' could not be found for Api::Json::RecordsController17:30:32 web.1 | (0.000598s) SELECT * FROM "users" WHERE ("username" = 'ec2-54-185-162-75') LIMIT 117:30:32 web.1 | [Rollbar] Exception not reported because Rollbar is disabled17:30:32 web.1 | 17:30:32 web.1 | AbstractController::ActionNotFound (The action 'index' could not be found for Api::Json::RecordsController):
أكثر...