Actuellement, je migre des bases de données d'Oracle vers MySQL. J'utilise principalement Java pour envoyer des requêtes à la base de données en utilisant JDBC. Dans le processus de migration, j'ai besoin de changer beaucoup de mes requêtes dans le code Java (les requêtes sont codées en dur) car elles ne fonctionneront pas dans MySQL. Je veux être capable de recoder mes requêtes de telle sorte que je puisse facilement basculer entre les bases de données si des problèmes surviennent; Je change toutes mes requêtes en SQL standard mais il y a des domaines où cela n'est pas possible. Je pense à avoir deux versions des requêtes, une pour Oracle et une pour MySQL afin que je puisse basculer entre les deux (j'aurai deux versions temporaires juste pour voir si MySQL peut faire face à nos besoins). Cependant, cela semble être une idée terrible - quelqu'un a-t-il des conseils sur une meilleure façon de le faire?Migration d'Oracle vers MySQL
Répondre
Vous avez un tas d'options. Premièrement, de nombreuses personnes utilisent maintenant des outils ORM (Object-Relational Mapping) pour connecter des applications à des bases de données SQL. Ceux-ci viennent dans une variété de saveurs différentes - Hibernate est populaire - et vous permettent de basculer entre les bases de données à très faible coût. Cependant, ils ont une courbe d'apprentissage assez raide. Les développeurs inexpérimentés rencontrent souvent des problèmes de performances dans les applications ORM. Si vous vous en tenez au JDBC "traditionnel", je vous suggère de retirer le corps du code SQL du code Java et de le traiter comme une ressource. Comme le suggère Henry, vous pouvez utiliser des fichiers de propriétés et utiliser des espaces réservés pour les paramètres (idéalement des espaces réservés nommés, en utilisant le Spring template). Bien que cela permette de répartir le code d'une fonctionnalité donnée en deux fichiers, il est facile d'affiner rapidement le SQL et de tester de nouvelles versions.
Je vais essayer la deuxième solution, merci. – JCS
Une possibilité consiste à stocker les requêtes dans un fichier de propriétés. Vous en auriez un pour Oracle et un pour MySql.
Je dois ajouter - ORM est un bon conseil et fonctionnera ... lorsque vous démarrez avec une nouvelle application et que vous pouvez concevoir votre application pour travailler sur un modèle de domaine.
Dans ce cas, cependant, il existe une application qui appelle un grand nombre de requêtes SQL. Les requêtes basées sur ORM (HQL, JPQL) traduisent bien SQL; SQL ne se traduit pas par définition à la couche ORM mais des changements majeurs seront nécessaires pour en faire une approche plus orientée objet des données.
Le problème persistera même si vous réussissez à travailler dans une couche ORM. Il y a déjà une différence majeure entre MySQL et Oracle dans la façon dont la génération de clé primaire fonctionne par exemple; MySQL utilise la numérotation automatique où Oracle utilise une séquence. Vous avez probablement déjà un modèle de données existant que vous devez désassembler dans le code de couche ORM; Ce ne sera pas un code inter-base de données.
- 1. Migration d'Oracle vers MySQL
- 2. Migration de MSSQL vers mysql
- 3. Migration de MySQL vers SQLite
- 4. Outil de migration SQL Server vers MYSQL
- 5. migration mysql vers sql server 2008
- 6. Migration de SQL Server vers MySQL
- 7. Outil de migration de DB2 vers MySQL
- 8. Migration d'Oracle vers MySQL ou PostgreSQL
- 9. Migration de l'application .NET/MySQL. vers DB2
- 10. Outils pour la migration d'Oracle vers MySQL
- 11. Rails 3 migration de MySQL vers Oracle
- 12. MS SQL vers MySQL avec MySQL Migration Toolkit: autorisation
- 13. Migration de couchDB vers RDBMS
- 14. Migration vers FOSUserBundle
- 15. Migration de PHP \ MySQL
- 16. migration PHP vers Java
- 17. Migration vers PostgreSQL 'xml'
- 18. Migration d'Assembla vers GitHub
- 19. Migration EclipseLink vers Hibernate
- 20. Migration d'Authlogic vers Devise
- 21. Migration vers jquery 1.4
- 22. Migration ASMX vers WCF
- 23. Migration vers ES6
- 24. migration vers bluetooth 3.1
- 25. Migration d'OsCommerce vers Magento
- 26. Migration de la base de données MySQL vers Sql Server
- 27. Migration de MySQL vers une table avec une structure différente
- 28. Migration de Progress DB vers MySQL en utilisant Linux
- 29. Migration de table MySQL vers un fichier DBF
- 30. Migration d'une application Rails de MySQL vers MongoDB
Avez-vous envisagé d'utiliser une solution ORM? (Hibernate ou similaire) – favoretti
@favoretti jamais entendu parler d'un ORM se penchera sur lui merci. – JCS