Page 1 sur 1

préciser le type de champ DDL dans le diagramme de classes ?

MessagePublié: Lun 17 Mai 2010, 12:26
par yarfu
Bonjour,

J'aimerais définir pour un attribut le type de champ dès le diagramme de classes pour générer ensuite un modèle de base + script qui n'ai pas besoin d'être retouché.

ex :
Code: Tout sélectionner
 
class {
   public string toto;
}
=> mysql :
create table Act
(
   toto               mediumtext
)


est-ce possible ?

Re: préciser le type de champ DDL dans le diagramme de classes ?

MessagePublié: Mar 18 Mai 2010, 10:12
par Yves
La transformation d'un type d'attibut dans un type de colonne est effectuée dans le template Attribute du transformateur DDL. Elle est codée de la façon suivante :

%TRANSFORM_CURRENT("type", "stereotype", "collection", "constant", "containment", "ordered", "static", "volatile")%
type=%qt%%CONVERT_TYPE(genOptDefaultDatabase,attType)%%qt%

Tu peux voir que le type est transformé en fonction du type de donnée associée à la base cible définie par défaut dans EA. Pour spécifier quelle base cible tu veux utiliser tu dois aller dans le menu suivant : Tools/Options/Source code engineering /Code editors et préciser la base par défaut dans le champ "default database".
Pour modifier les types par défaut utilisés pour cette DB tu dois ensuite aller dans Settings/Database datatypes et sélectionner la même base de données dans le champ "Product Name".
Afin de modifier le type associé à une string, tu dois en fait modifier celui qui s'appelle VARCHAR. La fenêtre n'est pas très bien faite car on voit le type cible et pas le type source. Tu vois ainsi qu'en modifiant la cible de varchar tu définis en fait celle de string. Je ne sais pas où est codée cette correspondance.

Re: préciser le type de champ DDL dans le diagramme de classes ?

MessagePublié: Mar 18 Mai 2010, 12:08
par yarfu
Merci bien Yves :)

J'avais cru que Databases Datatypes n'etais pas modifiable car le pannel size est grisé,
il faut en fait modifier le champ Datatype (ajouter un espace puis le supprimer) pour dégriser le panel et le restes se passes correctement.

Ca me permet déjà de définir varchar(255) comme défaut pour les string standards.

Par contre, il va falloir trouver ou se trouve la correspondance typePHP/typeMysql pour pouvoir créer de manière ponctuelle des champ de type mysql : text par exemple.

Je vais écumer un peu plus le forum sparx en espérant trouver la réponse, biensur je la posterais ici si je la trouves.