Commande wsschema
L'outil wsschema permet de visualiser le schéma de base de données au format XML ou de faire correspondre un schéma XML avec une base de données existante.
Cet outil peut refléter le schéma de base de données en cours en le convertissant éventuellement en une représentation XML afin qu'il puisse être manipulé. Il peut prendre une définition de schéma XML, calculer les différences entre la représentation XML et le schéma de base de données existant et appliquer les modifications nécessaires pour que les bases de données correspondent au schéma XML. Le format XML employé par cet outil ne tient pas compte des différences des dialectes SQL utilisés par les différents fournisseurs. Cet outil adapte aussi automatiquement son langage SQL pour répondre aux besoins des dépendances externes ; il peut donc être utilisé de manière générale pour manipuler les schémas.
Syntaxe
La syntaxe de la commande est la suivante :
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsschema.sh [parameters][arguments]
![[IBM i]](../images/iseries.gif)
wsschema [parameters][arguments]
![[Windows]](../images/windows.gif)
wsschema.bat [parameters][arguments]
Lancez la commande à partir du sous-répertoire bin du répertoire racine_profil.
Paramètres
- -ignoreErrors/-i <true/t |
false/f> : si ce paramètre est réglé à false, une exception
a lieu si l'outil rencontre des erreurs liées à la base de données.
La valeur par défaut est false.
- -file/-f <stdout | fichier
sortie> : cette option permet d'écrire un script SQL pour les
modifications de schéma planifiées plutôt que de les valider dans la
base de données.
Lorsque cette option est employée conjointement avec l'action export ou reflect, le fichier nommé permet d'écrire le schéma XML exporté. Si le fichier nomme une ressource située dans le chemin de classes, les données sont inscrites dans cette ressource. Utilisez stdout pour écrire dans la sortie standard. La valeur par défaut est stdout.
- -openjpatables/-ot <true/t |
false/f> : lorsque le schéma est reflété, ce paramètre détermine
si cette opération doit être effectuée sur des tables et des séquences
dont le nom commence par OPENJPA_.
Certains composants OpenJPA peuvent utiliser ces tables et ces séquences, telles que la fabrique de schéma des tables. Lorsqu'il utilise d'autres actions, le paramètre openjpaTables contrôle si ces tables peuvent être supprimées. La valeur par défaut est false.
- -dropTables/-dt <true/t |
false/f> : lorsque cette option est réglée à true, le schéma
supprime les tables inutilisées lors des actions retain et
refresh.
La valeur par défaut est true.
- -dropSequences/-dsq <true/t |
false/f> : si cette option est réglée à true, le schéma
supprime les séquences inutilisées lors des actions retain et
refresh.
La valeur par défaut est true.
- -sequences/-sq <true/t |
false/f> : cette option détermine si les séquences peuvent être
manipulées.
La valeur par défaut est true.
- -indexes/-ix <true/t |
false/f> : cette option détermine si les index peuvent être
manipulés sur des tables existantes.
La valeur par défaut est true.
- -primaryKeys/-pk <true/t |
false/f> : cette option détermine si les clés primaires
peuvent être manipulées sur les tables existantes.
La valeur par défaut est true.
- -foreignKeys/fk <true/t |
false/f> : cette option détermine si les clés externes
peuvent être manipulées sur les tables existantes.
La valeur par défaut est true.
- -record/-r <true/t | false/f> :
cette option autorise ou empêche l'écriture des modifications de schéma
effectuées par l'outil wsschema dans la fabrique de schéma en cours.
Indiquez la valeur true autoriser l'écriture des modifications de schéma ou la valeur false pour l'empêcher. La valeur par défaut est true.
- -schemas/-s <liste schémas> :
indique une liste de noms de schéma et de table auxquels OpenJPA doit
accéder lorsqu'il exécute l'outil wsschema.
Equivaut à définir la propriété openjpa.jdbc.Schemas afin qu'elle ne s'exécute qu'une seule fois.
Important : L'outil wsschema accepte l'option -action/-a. Il est possible de combiner plusieurs actions dans une liste dont les éléments sont séparés par une virgule. Les actions disponibles sont :- add : il s'agit de l'action par défaut si aucune autre action n'est précisée. Elle met à jour le schéma avec les documents XML donnés en ajoutant des tables, des colonnes, des index ou d'autres composants. Cette action ne supprime jamais de composant de schéma.
- retain : cette action conserve tous les composants de schéma dans la définition XML donnée, mais supprime le reste à partir de la base de données. Cette action n'ajoute jamais de composant de schéma.
- drop : supprime tous les composants de schéma dans la représentation XML du schéma. Cette action supprime des tables uniquement si elles ne contiennent aucune colonne après la suppression de toutes les colonnes indiquées dans la représentation XML.
- refresh : cette action est équivalente aux fonctions retain et add.
- build : produit un code SQL qui génère un schéma correspondant à celui figurant dans le fichier XML fourni. A la différence de l'action add, cette option ne tient pas compte du fait qu'une partie du schéma définie dans le fichier XML est susceptible de déjà exister dans la base de données. Cette action est généralement employée conjointement avec l'option -file/-f pour l'écriture d'un script SQL. Ce script peut ensuite être utilisé pour recréer le schéma dans la représentation XML.
- reflect : génère une représentation XML du schéma de base de données en cours.
- createDB : génère un code SQL qui recrée la base de données en cours. Cette action est généralement employée conjointement avec l'option -file/-f pour l'écriture d'un script SQL qui peut ensuite être utilisé pour recréer le schéma en cours dans une nouvelle base de données.
- dropDB : génère un code SQL pour supprimer la base de données en cours. A l'instar de l'action createDB, cette action peut être employée conjointement avec l'option -file/-f pour écrire un script de suppression dans la base de données plutôt que d'effectuer cette opération manuellement.
- import : importe la définition de schéma XML
donnée dans la fabrique de schéma en cours. Remarque : Cette action n'effectue aucune opération si la fabrique de schéma ne stocke pas d'enregistrement du schéma.
- export : exporte la définition de schéma stockée
dans la fabrique de schéma en cours vers un fichier XML. Remarque : Cette action peut générer un fichier vide si la fabrique de schéma ne contient aucun enregistrement du schéma.
- deleteTableContents : cette action implémente une instruction SQL qui supprime toutes les lignes de toutes les tables trouvées par OpenJPA.
Utilisation
- Les tables de base de données et la connexion à la base de données doivent être configurées.
- Exécutez l'outil wsschema à partir de la ligne de commande dans le répertoire $ {racine_profil}/bin.
- L'outil génère un fichier XML qui décrit le schéma de base de données.
Exemples
Ajoutez les composants de schéma nécessaires dans la base de données afin de correspondre au document XML indiqué sans supprimer aucune donnée :
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
$ wsschema.sh targetSchema.xml
![[IBM i]](../images/iseries.gif)
$ wsschema targetSchema.xml
![[Windows]](../images/windows.gif)
$ wsschema.bat targetSchema.xml
Répétez l'action de l'exemple précédent sans modifier la base de données, mais en écrivant à la place les modifications planifiées dans un script SQL :
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsschema.sh -f script.sql targetSchema.xml
![[IBM i]](../images/iseries.gif)
wsschema -f script.sql targetSchema.xml
![[Windows]](../images/windows.gif)
wsschema.bat -f script.sql targetSchema.xml
Ecrivez un script SQL qui recrée la base de données en cours :
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
$ wsschema.sh -a createDB -f script.sql
![[IBM i]](../images/iseries.gif)
$ wsschema -a createDB -f script.sql
![[Windows]](../images/windows.gif)
$ wsschema.bat -a createDB -f script.sql
Actualisez le schéma et supprimez la totalité du contenu de toutes les tables connues par OpenJPA :
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
$ wsschema.bat -a refresh,deleteTableContents
![[IBM i]](../images/iseries.gif)
$ wsschema -a refresh,deleteTableContents
![[Windows]](../images/windows.gif)
$ wsschema.bat -a refresh,deleteTableContents
Supprimez la base de données en cours :
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
$ wsschema.sh -a dropDB
![[IBM i]](../images/iseries.gif)
$ wsschema -a dropDB
![[Windows]](../images/windows.gif)
$ wsschema.bat -a dropDB
Ecrivez une représentation XML du schéma en cours dans le fichier schema.xml :
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
$ wsschema.sh -a reflect -f schema.xml
![[IBM i]](../images/iseries.gif)
$ wsschema -a reflect -f schema.xml
![[Windows]](../images/windows.gif)
$ wsschema.bat -a reflect -f schema.xml
Informations supplémentaires
Pour plus d'informations, lisez la section relative à JDBC dans la documentation d'Apache OpenJPA.