d27b2a2b7878dbb68dd94833300fcba68bc91b10
Due some service restrictions, google services users couldn't use the HERE services which includes the isolines functions.
Data Services API
The CartoDB Data Services SQL API (server and client FTM)
Deploy instructions
Steps to deploy a new Data Services API version :
- Deploy new version of dataservices API to all servers
- Update the server user using: ALTER EXTENSION cdb_dataservices_server UPDATE TO '<CURRENT_VERSION>';
- Update the python dependencies if needed: cartodb_geocoder and heremaps
- Add the needed config in the
cdb_conftable:redis_metadata_configandredis_metrics_conf{"sentinel_host": "localhost", "sentinel_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}
heremaps_conf{"app_id": "APP_ID", "app_code": "APP_CODE"}
- Deploy the client to all the servers with the new version
- Deploy the editor with the new dataservices api version changed (https://github.com/CartoDB/cartodb/blob/master/app/models/user/db_service.rb#L18)
- Execute the rails task to update first the CartoDB team organizaton to test in production
RAILS_ENV=production bundle exec rake cartodb:db:configure_geocoder_extension_for_organizations['team']
- Check if all works perfectly for our team. If so, execute the rake tasks to update all the users and organizations:
RAILS_ENV=production bundle exec rake cartodb:db:configure_geocoder_extension_for_organizations['', true]RAILS_ENV=production bundle exec rake cartodb:db:configure_geocoder_extension_for_non_org_users['', true]
- Freeze the generated SQL file for the version. Eg. cdb_dataservices_server--0.0.1.sql
Local install instructions
-
install data services extension
git clone git@github.com:CartoDB/data-services.git data-services/geocoder/extension sudo make install -
install server and client extensions
cd client && sudo make install cd server && sudo make install -
install python library
cd server/lib/python/cartodb_services && python setup.py install -
install extensions in user database
create extension cdb_geocoder; create extension plproxy; create extension cdb_dataservices_server; create extension cdb_dataservices_client; -
add configuration for different services in user database
# select CDB_Conf_SetConf('redis_metadata_config', '{"sentinel_host": "localhost", "sentinel_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); # select CDB_Conf_SetConf('redis_metrics_config', '{"sentinel_host": "localhost", "sentinel_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); # select CDB_Conf_SetConf('heremaps_conf', '{"app_id": "APP_ID", "app_code": "APP_CODE"}'); # select CDB_Conf_SetConf('user_config', '{"is_organization": false, "entity_name": "<YOUR_USERNAME>"}') -
configure plproxy to point to the same user database (you could do in a different one)
select CDB_Conf_SetConf('geocoder_server_config', '{ "connection_str": "host=localhost port=5432 dbname=cartodb_dev_user_accf0647-d942-4e37-b129-8287c117e687_db user=postgres"}'); -
configure the search path in order to be able to execute the functions without use the schema:
alter role "<USER_ROLE>" set search_path='"$user", public, cartodb, cdb_dataservices_client';
Description
Languages
PLpgSQL
97.1%
Python
2.8%