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



## Sumzy (11 Juin 2004)

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


----------



## Sumzy (14 Juin 2004)

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


----------



## Manu (14 Juin 2004)

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


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


----------



## Sumzy (15 Juin 2004)

oui d'accord, merci...
mais concretement il fo ke je fasse koi exactement???
merci kan meme pour ta réponse...
Sumzy


----------



## Sumzy (15 Juin 2004)

en tou cas oui c'est bien rajouter une colonne a ma table que je veu faire...


----------



## Manu (17 Juin 2004)

J'ai oublié de te demander quelle type de base tu as. MySQL, Oracle? etc...?


----------



## Sumzy (17 Juin 2004)

Ben en fait je realise ma base avec EOMOdeler de WebObjects... C une BD SQL...


----------



## opoppon (17 Juin 2004)

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)


----------



## Manu (18 Juin 2004)

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.


----------

