Comando wsschema
A ferramenta de esquema pode ser utilizada para visualizar o esquema do banco de dados na forma XML ou para corresponder um esquema XML a um banco de dados existente.
A ferramenta wsschema pode refletir no esquema de banco de dados atual, convertendo-o, opcionalmente, em uma representação XML para manipulação adicional. A ferramenta de esquema pode usar uma definição de esquema XML, calcular as diferenças entre o XML e o esquema de banco de dados existente e aplicar as mudanças necessárias para tornar os bancos de dados correspondentes ao esquema XML. O formato XML utilizado pela ferramenta de esquema é um resumo das diferenças em dialetos SQL utilizados por diferentes fornecedores. A ferramenta também adapta automaticamente sua SQL para atender a dependências estrangeiras, portanto, a ferramenta de esquema é útil como uma forma geral de manipular os esquemas.
Sintaxe
A sintaxe do comando é a seguinte:
![[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]
Emita o comando a partir do subdiretório bin do diretório profile_root.
Parameters
- -ignoreErrors/-i <true/t | false/f>:
Se configurado para false, uma exceção ocorrerá se a ferramenta encontrar quaisquer
erros de banco de dados.
O padrão é configurado para false.
- -file/-f <stdout | output file>:
Use esta opção para gravar um script SQL para as modificações de esquema planejadas,
em vez de confirmá-las no banco de dados.
Quando usado com as ações de exportação ou reflexão, o arquivo nomeado será usado para gravar o XML de esquema exportado. Se o arquivo nomear um recurso no caminho de classe, os dados serão gravados nesse recurso. Utilize stdout para gravar na saída padrão. A configuração padrão é stdout.
- -openjpatables/-ot <true/t | false/f>:
Ao refletir o esquema, este parâmetro determina se refletirá as tabelas e sequências
cujos nomes começam com OPENJPA_.
Determinados componentes OpenJPA podem usar tais tabelas e sequências, como o factory de esquema de tabela. Ao usar outras ações, o openjpaTables controlará se essas tabelas podem ser eliminadas. A configuração padrão é false.
- -dropTables/-dt <true/t | false/f>:
Quando essa opção é configurada para true, o esquema eliminará as tabelas que não estiverem sendo
usadas durante as ações de retenção e atualização.
O padrão é true.
- -dropSequences/-daq <true/t | false/f>:
Se essa opção for configurada para true, o esquema eliminará as sequências que não estiverem sendo
usadas durante as ações de retenção e atualização.
O padrão é true.
- -sequences/-sq <true/t | false/f>:
Este sinalizador determina se as sequências podem ser manipuladas.
O padrão é true.
- -indexes/-ix <true/t | false/f>:
Este sinalizador determina se os índices podem ser manipulados em tabelas existentes.
O padrão é true.
- -primaryKeys/-pk <true/t | false/f>:
Este sinalizador determina se as chaves primárias podem ser manipuladas em tabelas existentes.
O padrão é true.
- -foreignKeys/fk <true/t | false/f>:
Este sinalizador determina se as chaves estrangeiras podem ser manipuladas em tabelas existentes.
O padrão é true.
- -record/-r <true/t | false/f>:
Este sinalizador permite ou impede a gravação de mudanças no esquema feitas pela ferramenta de esquema
no factory de esquema atual.
Selecione true para permitir a gravação de mudanças no esquema ou selecione false para impedir a gravação das mudanças no esquema. O padrão é configurado para true.
- -schemas/-s <schema list>:
Indica uma lista de nomes de esquemas e tabelas que o OpenJPA deve acessar
ao executar a ferramenta de esquema.
Isso equivale a configurar a propriedade openjpa.jdbc.Schemas para ser executada uma vez.
Importante: A ferramenta de esquema aceita o sinalizador -action/-a. Várias ações podem ser compostas em uma lista separada por vírgulas. As ações disponíveis são:- add: Essa será a ação padrão se nenhuma outra ação for especificada. Ela atualizou o esquema com os documentos XML especificados, incluindo tabelas, colunas, índices ou outros componentes. Essa ação nunca elimina nenhum componente de esquema.
- retain: Essa ação mantém todos os componentes de esquema na definição XML especificada, mas elimina o restante do banco de dados. Ela nunca inclui nenhum componente de esquema.
- drop: Elimina todos os componentes do esquema XML. Essa ação eliminará as tabelas apenas se houver 0 colunas depois de eliminar todas as colunas listadas no XML.
- refresh: Essa ação é o equivalente das funções retain e add.
- build: Gera SQL para construir um esquema correspondente ao do arquivo XML fornecido. Ao contrário da ação add, essa opção não considera o fato de que parte do esquema definido no arquivo XML já pode existir no banco de dados. Essa ação normalmente é usada com o sinalizador de parâmetro -file/-f para gravar um script SQL. Esse script pode ser usado posteriormente para recriar o esquema no XML.
- reflect: Gera uma representação XML do esquema de banco de dados atual.
- createDB: Essa ação gera SQL para recriar o banco de dados atual. Essa ação normalmente é usada com o sinalizador de parâmetro -file/-f para gravar um script SQL que pode ser usado para recriar o esquema atual em um novo banco de dados.
- dropDB: Gera a SQL para eliminar o banco de dados atual. Tal como a ação createDB, isso pode ser usado com o sinalizador de parâmetro -file/-f para gerar o script de uma eliminação de banco de dados em vez de executá-la manualmente.
- import: Importa a definição de esquema XML especificada para
a fábrica de esquemas atual. Nota: Essa ação não fará nada se o factory de esquema não armazenar um registro do esquema.
- export: Exporta a definição de esquema armazenado do factory de esquema atual
para um arquivo XML. Nota: Isso pode produzir um arquivo vazio se o factory de esquema não armazenar um registro do esquema.
- deleteTableContents: Essa ação implementa o SQL para excluir todas as linhas de todas as tabelas que o OpenJPA localiza.
Uso
- As tabelas do banco de dados e a conexão com o banco de dados deverão estar configuradas.
- Execute a ferramenta wsschema a partir da linha de comandos no diretório $ {profile_root}/bin/.
- A ferramenta gera um arquivo XML que descreve o esquema do banco de dados.
Exemplos
Incluir os componentes de esquema necessários no banco de dados para corresponder ao documento XML especificado sem eliminar dados:
![[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
Repetir a mesma ação do exemplo anterior, desta vez sem alterar o banco de dados, mas gravando as alterações planejadas em um 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
Grave um script SQL que recria o banco de dados atual:
![[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
Atualize o esquema e exclua todo o conteúdo de todas as tabelas das quais a OpenJPA tem conhecimento:
![[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
Eliminar o banco de dados atual:
![[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
Grave uma representação XML do esquema atual no arquivo 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
Informações adicionais
Para obter informações adicionais, leias as informações do JDBC na documentação do Apache OpenJPA.