Utilisez le ConnectionManager::config() pour créer des connexions à la volée et le ConnnectionManager::alias() pour que toutes vos classes Table l'utilisent par défaut.
Il y a un très bon article décrivant le processus ici :
https://mark-story.com /posts/view/using-cakephp-and-a-horizontally-sharded-database
La seule différence est que vous pouvez créer la configuration de connexion à la volée au lieu de déclarer les partitions manuellement comme indiqué dans cet article.