Prérequis
- Accès à votre base de données PostgreSQL source via un utilisateur disposant des privilèges de réplication. Suivez le guide de configuration correspondant à votre source :
- Amazon RDS Postgres
- Amazon Aurora Postgres
- Supabase Postgres
- Google Cloud SQL Postgres
- Azure Flexible Server for Postgres
- Neon Postgres
- Crunchy Bridge Postgres
- TimescaleDB
- Source Postgres générique pour tout autre fournisseur ou instance auto-hébergée
- Un service ClickHouse Managed Postgres comme cible de migration. Si vous n’en avez pas encore, consultez le quickstart.
pg_dumpetpsqlinstallés sur votre machine locale. Tous deux sont fournis avec les outils client PostgreSQL standard.
Points à prendre en compte avant la migration
- Propagation du DDL : la réplication continue (CDC) capture les opérations DML et
ADD COLUMN. Les autres modifications DDL, telles queDROP COLUMNetALTER COLUMN, ne sont pas propagées et doivent être appliquées manuellement sur la base cible.
Si vous rencontrez des problèmes pendant la migration, consultez la FAQ des migrations Managed Postgres pour connaître les erreurs courantes et leurs solutions.
Étape 1 : Connectez-vous à votre base de données source
Ouvrez la console ClickHouse Cloud et sélectionnez votre service Managed Postgres. Dans la barre latérale de gauche, cliquez sur Sources de données. Cliquez sur Démarrer l’importation. Renseignez les informations de connexion de votre base de données PostgreSQL source : hôte, port, nom d’utilisateur, mot de passe et nom de la base de données. Activez TLS si votre source l’exige. Si vous avez besoin d’une connexion privée à votre base de données source, vous pouvez opter pour un tunnel SSH et fournir les informations SSH nécessaires. Cela permet à la migration de se connecter en toute sécurité à des bases de données qui ne sont pas accessibles publiquement. Choisissez une méthode d’ingestion :- Chargement initial + CDC — copie les données existantes, puis maintient la cible synchronisée avec les modifications en cours.
- Chargement initial uniquement — copie unique, sans réplication continue.
- CDC uniquement — ignore la copie initiale et réplique uniquement les nouvelles modifications à partir de ce moment.
Migration automatisée du schéma
Si vous choisissez cette option, le ClickPipe récupère automatiquement le schéma de votre base de données source et l’applique à votre service Managed Postgres lors de la phase Setup du ClickPipe, après sa création. Cette fonctionnalité suppose une base de données cible vide, car elle récupère tous les objets de la base de données source, quelles que soient les tables que vous sélectionnerez ensuite dans l’assistant. Si votre base de données cible contient déjà des données ou si vous souhaitez une configuration plus personnalisée, vous devez choisir le mode Manuel. Sélectionnez la base de données de destination dans la liste déroulante ou cliquez sur Créer une nouvelle base de données pour en provisionner une.Monitoring
Vous pouvez suivre l’avancement de la migration de schéma dans la vue détaillée de ClickPipes. Les journaux indiquent l’état de la migration de schéma et affichent également les éventuelles erreurs rencontrées. Ce mode présente les limitations suivantes :- Les pipes utilisant le tunnel SSH ne peuvent pas recourir à la migration automatisée du schéma. Le schéma doit être exporté et importé manuellement.
Migration manuelle du schéma
Si votre base de données cible contient déjà des données ou si vous souhaitez une configuration plus personnalisée que l’environnement vierge attendu par le mode automatisé, vous pouvez sélectionner le mode Manuel.Exportez le schéma de votre base de données
L’assistant affiche une commandepg_dump préremplie avec les informations de connexion de votre source. Exécutez-la dans un terminal :
pg.sql dans votre répertoire courant.
Cliquez sur Suivant.
Importez le schéma dans votre service Managed Postgres
Sélectionnez la base de données de destination dans la liste déroulante, ou cliquez sur Créer une nouvelle base de données pour en provisionner une. L’assistant affiche une commandepsql pour appliquer le dump du schéma à votre service Managed Postgres. Exécutez-la dans un terminal :
Étape 4 : Configurer les paramètres d’ingestion
Indiquez la publication à utiliser pour la réplication logique. Si vous laissez ce champ vide, une publication sera créée automatiquement. Développez Paramètres avancés de réplication pour ajuster le débit :
Cliquez sur Next.
Étape 5: Sélectionner les tables
Sélectionnez les tables que vous souhaitez répliquer. Les tables sont regroupées par schéma. Sélectionnez des tables individuellement ou développez un schéma pour toutes les sélectionner. Cliquez sur Créer la migration.Surveiller la migration
Après avoir créé la migration, elle apparaît dans Sources de données avec le statut En cours d’exécution. Cliquez sur la migration pour ouvrir la vue détaillée. L’onglet Tables affiche la progression du chargement initial pour chaque table, notamment le nombre de lignes traitées, les partitions et le temps moyen par partition. L’onglet Metrics affiche le retard de réplication et le débit une fois le CDC démarré.Basculer le trafic
Une fois le chargement initial terminé et, si vous utilisez le CDC, dès que le retard de réplication est proche de zéro, vous pouvez basculer le trafic de votre base de données Postgres source vers votre service Managed Postgres. Ouvrez la vue détaillée de la migration et sélectionnez l’onglet Post-migration steps. Cet assistant vous guide à travers les six étapes nécessaires pour finaliser la migration en toute sécurité. Chaque étape doit être réalisée dans l’ordre avant de pouvoir passer à la suivante.Étape 1 : passer la base de données Postgres source en mode lecture seule
Arrêtez les écritures applicatives sur la source afin d’éviter toute divergence pendant le basculement. L’assistant affiche une commandeALTER DATABASE pré-remplie avec le nom de votre base de données source — exécutez-la sur celle-ci :
Selon votre provider Postgres, cette étape peut différer. Les services managés peuvent restreindre
ALTER DATABASE ou l’arrêt des backends, et exposer à la place le mode lecture seule via leur propre console, des parameter groups, ou par la révocation des privileges d’écriture. Consultez la documentation de votre provider pour connaître la méthode équivalente permettant de passer la source en read-only.Étape 2 : valider le nombre de lignes
Sélectionnez les tables répliquées que vous souhaitez valider. ClickPipes compte les lignes de chaque table sélectionnée, à la fois sur la source et sur la cible, puis compare les résultats. Les tables volumineuses peuvent renvoyer des décomptes approximatifs. Utilisez Select all tables pour valider toutes les tables, ou recherchez des tables spécifiques et activez-les, puis cliquez sur Count rows.Étape 3 : mettre le pipe en pause
Mettez le ClickPipe en pause afin d’arrêter la réplication avant de réinitialiser les séquences et de basculer le trafic. Cliquez sur Pause ClickPipe et attendez que le pipe soit effectivement en pause avant de poursuivre.Étape 4 : Réinitialiser les séquences
Réinitialisez les séquences sur la destination afin que les nouvelles insertions reprennent aux valeurs correctes. Cliquez sur Reset sequences pour aligner chaque séquence sur la valeur maximale actuelle de sa table.Étape 5 : basculer le trafic
Dirigez les lectures et les écritures vers votre service Managed Postgres en remplaçant l’URL de base de données de votre application par la connection string Managed Postgres. L’assistant fournit les connection details dans plusieurs formats — url, psql, env, yaml et jdbc — afin que vous puissiez copier celui qui correspond à votre stack. Une fois votre application mise à jour, cliquez sur Mark as completed.Étape 6 : nettoyage
Une fois la bascule effectuée et le bon fonctionnement du nouveau service confirmé, supprimez la migration et libérez les ressources de la source. L’assistant affiche une commandepg_drop_replication_slot pré-remplie avec le nom du slot — exécutez-la sur la source pour supprimer le slot de réplication :