Use el ConnectionManager::config() función para crear conexiones sobre la marcha y ConnnectionManager::alias() método para hacer que todas sus clases de Table lo usen por defecto.
Hay un muy buen artículo que describe el proceso aquí:
https://mark-story.com /posts/view/using-cakephp-and-a-horizontally-sharded-database
La única diferencia es que puede crear la configuración de conexión sobre la marcha en lugar de declarar los fragmentos manualmente como se muestra en ese artículo.