Modifier une base de donnée Enterprise Object sans perdre les données...

  • Créateur du sujet Créateur du sujet Sumzy
  • Date de début Date de début

Sumzy

Membre confirmé
5 Mai 2004
31
0
Bonjour toulemondo!
Je voudrais savoir si il etait possible de modifier une BD Enterprise Object du groupe WebObjects sans perdre toute les donnée de la base sql??? car l'appli que j'ai réalisé va être sujette a des modification futures et il faudrait pouvoir ajouter des attributs aux tables sans perdre toutes les données qu'elle contient ( pas de drop table donc...)
Merci d'avance pour vos reponses...
Sumzy :zen:
 
Visiblement, personne n'a l'air de savoir... Pourtant il doit bien être possible de faire ça??? j'imagine mal un serveur oueb avec plein de fiche client enregistrée, être obligée de tout effacé pour rajouter un attribut??
merki kan meme ...
Sumzy :zen:
 
Sumzy a dit:
Bonjour toulemondo!
Je voudrais savoir si il etait possible de modifier une BD Enterprise Object du groupe WebObjects sans perdre toute les donnée de la base sql??? car l'appli que j'ai réalisé va être sujette a des modification futures et il faudrait pouvoir ajouter des attributs aux tables sans perdre toutes les données qu'elle contient ( pas de drop table donc...)
Merci d'avance pour vos reponses...
Sumzy :zen:
Si le Model construit à partir de EOF (objet métier) a un attribut de plus qui correspond à une colonne de plus dans ta table, tu es quand même obligé de reconstruire ta table. Tu as des commandes sql qui te permettent de le faire sans perdre des données.

1 - Backup de ta base
2 - reconstruction de la nouvelle table
3 - restoration de ta base
 
oui d'accord, merci...
mais concretement il fo ke je fasse koi exactement???
merci kan meme pour ta réponse...
Sumzy :zen:
 
A ma connaissance, EOModel ne permet pas de faire une mise à jour incrémentale. Elle est nécessite la suppression des éléments existants.

Cependant, il est tout à fait possible d'ajouter une colonne à la table.
Cet ajout ce fait par le client de la BDD (du genre ALTER TABLE PERSONNE ADD PRENOM VARCHAR(32) NULL)
(on précise que la valeur peut être NULL, sinon il est impossible de la créer, le système ne sachant pas quelle valeur insérer pour les tuples déjà existant).

Une fois que c'est fait, il faut simplement mettre à jour l'EOModel, en ajoutant un attribut à l'entité...
Ne pas oublier de mettre à jour la classe java correspondante (soit depuis le modèle, soit directement dans le code)
 
Certes EOModeler te permet de créer ta base mais en principe mieux vaut la créer en utilisant les utilitaires fais pour, ou en utilisant les commandes SQL.
EOModeler te permet après de mapper ta table et de créer des objets métiers ou des objets génériques, en associant les colonnes que tu veux aux attributs de ton objet.

Cela te permet sans modif du code de ton appli d'utiliser tes nouveaux objets métiers.