Estoy intentando ejecutar un script que renombra el conjunto de datos carto existente a {CARTO_DATASET_NAME}_previous y luego utiliza la api de importación para cargar un archivo con el nombre original {CARTO_DATASET_NAME}. El problema con esto es que el nuevo archivo importado no se crea con {CARTO_DATASET_NAME} como se deseaba, de hecho se crea con un nombre de conjunto de datos {CARTO_DATASET_NAME}_1.
Esto es lo que hago para renombrar el conjunto de datos:
query = f'ALTER TABLE {CARTO_RAW_TABLE} RENAME to {CARTO_RAW_TABLE}_prev;'
req_url = f'{CARTO_URL}/user/{CARTO_USER}/api/v2/sql?q={query}&api_key={CARTO_API_KEY}'
res = rq.get(req_url)
La respuesta devuelve este texto
Invalidation service configuration not found. Skipping Ghost Tables linking.'], 'notices': ['_CDB_LinkGhostTables() called with username=dev, event_name=ALTER TABLE']
Como he dicho anteriormente después de renombrar el conjunto de datos original, entonces subo el nuevo:
upload_url = f'{CARTO_URL}/user/{CARTO_USER}/api/v1/imports/?api_key={CARTO_API_KEY}'
with open(csv_fname,'rb') as file_:
try:
res = rq.post(url = upload_url, verify = False, files = {'file': file_})
except TimeoutError:
raise TimeoutError("Error uploading csv file to carto")
else:
print('started uploading raw dataset to carto...')
Supongo que hay algún problema al renombrar el conjunto de datos original y éste sigue existiendo con el nombre original, no teniendo la cláusula ALTER TABLE el efecto deseado.