- Compare le schéma de vos bases de données de développement et de production.
- Génère le SQL nécessaire pour que la production corresponde au développement.
- Vous demande de résoudre tout ce qui est ambigu, comme une colonne renommée.
- Valide le SQL sur une copie de votre base de données de production.
- Applique le SQL à la production une fois votre application construite et avant la mise en ligne de la nouvelle version.
Cela ne s’applique qu’aux bases de données que Replit gère pour votre application. Si votre application publiée se connecte à une base de données externe comme Supabase, un projet Neon que vous avez créé vous-même ou Amazon RDS, Publish ne modifie pas cette base de données. Utilisez plutôt le flux de migration de ce fournisseur.
Étape 1 : Replit détecte les changements
La publication commence par une étape Provision. Si votre schéma de développement diffère de celui de la production, le volet Publish affiche Development database changes detected et commence à générer les migrations.
Étape 2 : Répondre aux questions sur les changements ambigus
Certains changements de schéma peuvent avoir deux significations. Lorsque Replit ne peut pas déterminer votre intention, il s’interrompt avec Detected potential conflicts, please review et vous demande de choisir. Choisissez une option et sélectionnez Submit.Renommage ou nouveauté ?
Si une colonne a été supprimée et une autre ajoutée sur la même table, Replit demande si l’ancienne colonne a été renommée.- Yes, rename column conserve les données existantes sous le nouveau nom.
- No, create new column ajoute une colonne vide et supprime l’ancienne avec ses données.


Contrainte d’unicité sur une table contenant des données
Si vous ajoutez une contrainte d’unicité à une table qui contient déjà des lignes en production, Replit vous indique combien de lignes la contrainte va vérifier.- Add the constraint as-is fait échouer la migration si des lignes existantes la violent. Vous pouvez alors corriger les données et publier à nouveau.
- Remove all rows, then add the constraint vide d’abord la table. Cette option n’est pas proposée lorsque d’autres tables référencent celle-ci via une clé étrangère.

Étape 3 : Examiner le SQL généré
Une fois les questions résolues, le volet affiche Generated migrations to apply to production database avec le SQL exact que Replit va exécuter. Lisez-le avant de continuer.
- Avertissement de perte de données. Lorsqu’un changement pourrait supprimer des données d’une table contenant des lignes en production, le volet devient orange et liste chaque table concernée avec son nombre de lignes. Les changements qui déclenchent cet avertissement incluent :
- Supprimer ou recréer une colonne ou une table
- Changer le type d’une colonne ou son caractère obligatoire
- Ajouter une colonne obligatoire
- Ajouter ou recréer des index et des contraintes
- Avis d’interruption. Lorsqu’un changement n’est pas compatible avec la version de votre application en cours d’exécution, Replit arrête l’application avant d’appliquer la migration afin que les utilisateurs ne puissent pas écrire dans la base de données en plein changement. Développez What’s happening? pour plus de détails.

La liste d’avertissement n’inclut que les tables qui contiennent des lignes en production. Un
DROP TABLE sur une table vide n’affiche aucun avertissement ; lisez donc le SQL même lorsque le volet n’est pas orange.Étape 4 : Replit valide la migration
Replit crée une copie temporaire de votre base de données de production et exécute le SQL dessus. Le volet affiche Validating database migrations… puis Database migrations validated successfully.

Les applications utilisant une base de données Databricks Lakebase ignorent cette étape de validation. Le volet vous demande d’examiner vous-même le SQL généré avant d’approuver.

Étape 5 (facultatif) Prévisualisez votre application sur la copie migrée
Une fois la validation réussie, vous pouvez sélectionner Create preview deploy pour construire votre application sur la copie migrée de la production. Lorsque la construction est terminée, sélectionnez View preview pour l’ouvrir.

Étape 6 : Approuver et publier
Sélectionnez Approve and publish pour continuer. Replit envoie le SQL exact que vous avez examiné avec la demande de publication : ce que vous avez vu est ce qui est exécuté. La publication se poursuit ensuite par les étapes restantes. La migration s’exécute après la fin de la construction de votre application et avant la promotion de la nouvelle version :- Vérifications de sécurité
- Construction
- Migration de base de données appliquée à la production
- Regroupement et promotion de la nouvelle version
drizzle-kit push, db:push ou CREATE TABLE IF NOT EXISTS à la commande de build du déploiement ni au point d’entrée de votre serveur. Elles s’exécuteraient à chaque publication, en dehors de l’examen et de la validation décrits ci-dessus.
Si vous demandez à Agent de republier au lieu d’utiliser le volet Publish et que vos schémas de développement et de production diffèrent, la republication est bloquée et vous êtes redirigé vers le volet Publish pour examiner la migration.
Modifier la production manuellement
Pour des corrections ponctuelles, vous pouvez exécuter du SQL directement sur la production depuis le volet Database : sélectionnez Production dans le sélecteur de base de données, puis utilisez la console SQL. Consultez Travailler avec vos données. Replit compare toujours les bases de données réelles, pas votre fichier de schéma ; toute modification manuelle fait donc partie de la comparaison de la prochaine publication. Si vous ajoutez à la main en production une colonne qui n’existe pas en développement, la prochaine publication proposera de la supprimer.Prochaines étapes
- Bases de données de développement et de production : Comprenez en quoi vos deux bases de données diffèrent.
- Récupération de données : Restaurez les données de développement ou de production.
- Objets de base de données non pris en charge : Objets que Publish ne peut pas migrer.