2010-05-05 5 views
1

Je viens de prendre en charge un projet pour un client et le schéma de base de données est dans un désordre total. Je voudrais renommer une charge de champs en faire une base de données de relation.MYSQL Evénement pour mettre à jour une autre table de base de données

Mais cela sera un processus fastidieux car ils ont une API qui l'exécute aussi. Donc, l'idée serait de créer une nouvelle base de données et de commencer à réécrire le code pour l'utiliser à la place. Mais j'ai besoin d'un moyen de synchroniser ces tables pendant ce processus.

Seriez-vous d'accord que je devrais utiliser MYSQL EVENT pour continuer à mettre à jour la nouvelle table sur Inserts/updates & deletes ??

Ou pouvez-vous suggérer un meilleur moyen?

Espérons que vous pouvez conseiller !!

Merci pour toute entrée-je obtenir

+0

Si vous devez également réécrire l'API, il peut être judicieux de commencer par des déclencheurs, puis de commencer à séparer deux (inserts, dleletes, etc.) l'un par l'ancien et l'autre par le nouveau. Cela vous permettra d'exécuter le code en parallèle et de tester qu'il fonctionne comme prévu. Vous pouvez également envisager d'écrire le nouveau code et le schéma db séparément du système existant. Ensuite, prévoyez de convertir les données et de passer au nouveau système. –

+0

Salut Steve, c'est exactement ce que nous allions faire. Nous espérons pouvoir réécrire l'API puis reconstruire le site en utilisant l'API également. Je pensais que les déclencheurs étaient basés sur le temps. D'où pourquoi je demande. – Lee

+0

pas de déclencheurs ne sont pas basés sur le temps, mais l'action (à savoir, insérer, supprimer, etc.) voir ici http://dev.mysql.com/doc/refman/5.0/fr/create-trigger.html –

Répondre

1

J'ai eu le même problème dans mon projet. J'ai fait la même chose que vous - écrire toute la base de données. Nous avons développé la nouvelle base de données et le code d'adaptation et après avoir terminé ce travail nous avons fait un script de migration (petite application) qui a fait la migration de l'ancienne à la nouvelle base de données.

espère que cela vous donne quelques idées ...

+0

Merci, mais ça ne va pas être possible. Ce sera un lent progrès car pour nous de recréer la base de données puis passer par toutes les requêtes sur ce site et juste relancer serait dangereux. Nous avons besoin d'un moyen de le réaliser progressivement. – Lee

0

J'ai eu le même problème aussi bien, et est allé par la voie de la duplication des données au point d'entrée de l'utilisateur (essentiellement des bases de données enregistrées dans les deux à la fois, depuis la schéma original manquait de toutes les informations requises). Après plusieurs mois de développement, le client s'est rendu compte qu'il allait passer à une toute nouvelle base de données et a jugé que c'était trop risqué (et je suis d'accord avec lui).

Ainsi, je conseillerais de dire clairement à votre client que vous allez implémenter une nouvelle base de données au lieu de la refactorisation itérative de l'actuelle.

Questions connexes