2010-10-13 3 views
2

J'ai une base de données MySQL existante, je voudrais importer le schéma dans Xcode et créer un modèle de données Core Data.Importer un schéma MySQL dans Xcode en tant que modèle de données CoreData

Existe-t-il un moyen (outil, processus) d'importer les instructions CREATE pour ne pas avoir à créer les modèles "à la main"? Comme une étape intermédiaire, je pourrais convertir en SQLite, je ne suis pas préoccupé par les relations, les clés étrangères etc juste générant automatiquement le Entities (Tables) et Properties (Colonnes).

Répondre

0

Le problème ici est que les entités ne sont pas des tables et que les propriétés ne sont pas des colonnes. Core Data est un système de gestion de graphe d'objet et non un système de base de données. La différence est subtile mais importante. Core Data n'a vraiment rien à voir avec SQL, il suffit de parfois utilise SQL comme l'une de ses options de persistance. Les données de base utilisent un schéma sqlite propriétaire et en principe vous pouvez le dupliquer, mais je ne connais personne ayant réussi de manière robuste, à l'exception de bases de données SQL très simples. Même quand ils le font, c'est beaucoup de travail. De plus, cela n'est pas pris en charge et le schéma risque de se casser quelque part.

La solution la plus simple et la plus robuste consiste à écrire une application utilitaire à lire dans la base de données existante et à créer le graphique de l'objet au fur et à mesure. Vous n'avez qu'à l'exécuter une fois et vous devez créer le modèle de données de toute façon, cela ne prend pas beaucoup de temps.

2

En fait, j'avais tellement besoin de la fonctionnalité que j'ai décidé de faire un utilitaire OSX pour le faire. MAIS ... alors j'ai trouvé un utilitaire dans l'Appstore Mac qui résout (partiellement) ce problème (il était libre depuis un certain temps, je ne connais pas son état actuel). Son appelé JSONModeler et ce qu'il fait est l'analyse d'un arbre json et génère le modèle Coredata et toutes les sous-classes NSManagedObject dérivées automatiquement. Ainsi, un flux de travail typique serait:

  1. Export des tables de MySQL en XML
  2. Convertir le xml à JSON
  3. Flux de l'utilitaire avec cette JSON et obtenez votre modèle CoreData

Maintenant, Pour un scénario plus complexe (relations, etc.), je suppose que vous devrez modifier votre xml pour qu'il reflète un arbre d'objets valide. JSONModeler sera alors capable de recréer cet arbre et de l'exporter pour coredata.

+0

Je suis le développeur de JSON Modeler, et est toujours en développement actif. Je voudrais pouvoir faire un outil XML pour faire la même chose, mais XML est trop compliqué en ce moment (les propriétés des attributs et sous-classes de nouvelles classes? Que se passe-t-il s'il y a plusieurs nœuds enfants avec des types différents? S'il y a quelque chose que je peux ajouter dans JSONModeler pour aider avec ce genre de choses, faites le moi savoir. – Rexeisen

+0

Vis-le - Je vais commencer à travailler sur la partie XML de l'outil. Garde les yeux ouverts. – Rexeisen

+0

Génial ... Je voulais vous demander cette fonctionnalité exacte mais le lien sur l'appstore (le lien pour le support) redirige vers une page de téléchargement de l'outil. Quoi qu'il en soit, le support XML sera super! Merci! – Alladinian

Questions connexes