quarta-feira, 14 de março de 2018

Como gerar o DDL dos objetos de banco e importar em outro ambiente

Olá pessoal,

seguindo a série de posts "Como colocar uma aplicação Apex em operação utilizando o App Builder e o SQL Workshop", vamos hoje falar sobre a geração do DDL (Data Definition Language) dos objetos de banco e a importação desses objetos em outro ambiente.

Antes de entrarmos propriamente no objetivo do post, gostaria de esclarecer uma dúvida comum de desenvolvedores iniciantes sobre a separação no Apex entre a aplicação e os objetos de banco (tabelas, views, functions, procedures etc).

A aplicação é manipulada no "App Builder", enquanto os objetos de banco e os dados são manipulados pelo desenvolvedor no "SQL Workshop". Apesar do nome SQL Workshop, nesta área é possível também manipular PL/SQL... :)

Veja a imagem abaixo com a identificação de onde manipulamos aplicações e objetos de banco.


Adivinha onde podemos gerar o DDL dos objetos de banco?

Isso mesmo, no SQL Workshop!

Vamos seguir um passo a passo para fazermos essa migração do DDL de um ambiente para outro.

Passo 1) Logar no ambiente que contém os objetos de banco (provavelmente seu ambiente de desenvolvimento) e acessar o SQL Workshop

Passo 2) Clicar em "Utilities" e em "Generate DDL"



Passo 3) Clique no botão "Create Script>"


Passo 4) Selecione o esquema onde os objetos se encontram e clique "Next >".
  
Passo 5) Selecione o tipo de "Output", sugiro "Save As Script File", pois gerará um arquivo que você poderá importar no outro ambiente. Caso deseje que todos os objetos sejam exportados, clique em "Check all" e no botão "Generate DDL". Caso contrário, selecione individualmente cada tipo de objeto que deseja exportar e clique "Next >" para refinar a seleção dos objetos a serem exportados. 



Passo 6) Digite o nome do Script e uma descrição para o script que será criado no repositório do "SQL Scripts" (componente que fica dentro do "SQL Workshop") e clique "Create Script"


Observação: Ao clicar em "Create Script", a geração do script pode ser uma operação bem lenta. No ambiente do apex.oracle.com é tão lento que as vezes dá timeout!!! Aparentemente a lentidão é maior quanto maior a quantidade de objetos no banco todo.

Passo 7) Ao finalizar a criação do script, clique no lápis logo abaixo da coluna "Edit"


Passo 8)  Clique em Download para baixar o arquivo.


Pronto! Você já gerou o arquivo que será necessário para a criação do DDL no outro ambiente.

Obs: Fique atento que a partir de agora os passos serão executados em outro ambiente Apex (normalmente o de operação)!!!

Passo 9) Agora, faça o login no ambiente Apex onde este arquivo será importado e acesse "SQL Workshop" > "SQL Scripts". 



Passo 10) Em SQL Scripts, clique no botão "Upload >".



Passo 11) Selecione o arquivo gerado no passo 8), digite o nome do script e clique "Upload"


Passo 12) Após o upload, clique no "Run" para executar o script.


Passo 13) Antes de executar, o Apex faz um "parse" do seu script e informa a quantidade de comandos. Confira se está ok, e clique em "Run Now"



Passo 14) Confira os erros e caso necessário, utilize o procedimento do post indicado a seguir para "limpar" todo o esquema.




Observação: Alguns erros acontecem, pois às vezes o script gerado pelo Apex cria o mesmo objeto duas vezes e ocorre o erro de nome já utilizado em outro objeto ("name is already used by an existing object"). Acontece muito com índices de chave primária e índices de LOB.

Pronto! Agora seus objetos estão todos no esquema desejado!

Para conferir os objetos criados, você pode acessar o "SQL Workshop > Browser de objetos".

Lembrando que os dados não foram migrados. Em breve, postaremos como migrar os dados de outro esquema. Não perca!

Espero que tenha gostado.

Deixe seu comentário!

Nenhum comentário:

Postar um comentário