2012-03-14 2 views
1

Je dois convertir une base de données mysql en une base de données java (derby). Cela fonctionne très bien avec ant-tâches, absolument aucun problème. Malheureusement, tous les tableaux de la base de données orginin ne peuvent pas être utilisés dans la base de données cible. Comme je n'ai trouvé aucune chance de filtrer les tables par leur nom dans les tâches de ddlUtils, je considère écrire une petite application Java en utilisant ddlUtils.jar.Problèmes de conversion de la base de données avec ddlutils

Mais en essayant cela, je ne suis même pas capable d'extraire le schéma et les données sur la base de données themysql. Les exemples dans le ddlUtils-api expliquent moins pour un débutant comme moi.

Existe-t-il un exemple plus complet de la façon de traiter ce problème?

Mon plan était de diviser le travail en ces étapes:

  • obtenir le db-schéma de l'origine base de données (filtrée par les noms de tables)
  • obtenir les données de la base de données d'origine (filtrée par TableNames)
  • en créant le schéma dans la base de données cible (Java) en utilisant le schéma db réduit
  • en insérant les données dans la base de données cible en utilisant le contenu réduit.

Dans la section api- « Lire le modèle à partir d'une base de données en direct » est la méthode platform.readModelFromDatabase (String) utilisé pour cette action, mais je n'a pas pu instancier une plate-forme objet maintenant qui me laisse appelez la méthode sans beaucoup d'exceptions.

beaucoup de remerciements Alf

Répondre

3

bien 6 mois sans réponse .. Si vous êtes toujours intéressé, je tentais de trouver des ressources sur le web au sujet DdlUtils mais malheureusement ils étaient très pauvres. Mais ces sites m'a aidé à trouver un moyen de commencer:

http://www.sienaproject.com/documentation-jdbc.html

http://codeblow.com/questions/database-migration/

http://numberformat.wordpress.com/tag/ddlutils/

J'utilise ce code pour initialiser l'instance MySQL:

MySqlPlatform platform = (MySqlPlatform) PlatformFactory.createNewPlatformInstance(datasource); 

J'espère que cela aide!

Questions connexes