DELETE puis recopie complète depuis dev préprod.
Client prod : lecture seule (aucun bouton Sync).
Client préprod : confirmation avec le nom exact de la base.
Structures non alignées : corriger via Navicat avant toute sync.
Source de vérité : dev préprod ().
Comparaison vers dev prod, client préprod et client prod (lecture seule pour prod).
| Table | Source |
$tabEnv) {
if (!empty($tabEnv['is_source'])) {
continue;
} ?>
|
|---|---|---|
|
ligne(s) | $tabEnv) { if (!empty($tabEnv['is_source'])) { continue; } $tabCmp = isset($tabRow['envs'][$strEnvId]) ? $tabRow['envs'][$strEnvId] : null; if (!$tabCmp) { continue; } $strClass = fxStaticSyncStatusClass($tabCmp['status']); $strLabel = fxStaticSyncStatusLabel($tabCmp['status'], $tabCmp); $strDbName = $tabEnv['config']['db'] ?? ''; ?>
Cible · Source
isset($tabCmp['schema_missing_cols']) ? $tabCmp['schema_missing_cols'] : array(),
'extra_in_target' => isset($tabCmp['schema_extra_cols']) ? $tabCmp['schema_extra_cols'] : array(),
);
$strSchemaDiff = fxStaticSyncFormatSchemaDiff($tabSchemaDiff);
if ($strSchemaDiff !== '') { ?>
Détails
Lecture seule
|
0) {
echo 'Il y en a ' . $intDelta . ' en trop (cible ' . (int)$tabCmp['target_count']
. ' · source ' . (int)$tabCmp['source_count'] . ')';
} else {
echo 'Même nombre de lignes, contenu différent (cible ' . (int)$tabCmp['target_count']
. ' · source ' . (int)$tabCmp['source_count'] . ')';
}
?>
isset($tabCmp['schema_missing_cols']) ? $tabCmp['schema_missing_cols'] : array(),
'extra_in_target' => isset($tabCmp['schema_extra_cols']) ? $tabCmp['schema_extra_cols'] : array(),
);
$strSchemaDiff = fxStaticSyncFormatSchemaDiff($tabSchemaDiff);
if ($strSchemaDiff !== '') { ?>
Fermer
Aucun écart à afficher.