O Add-on Studio oferece suporte a de criação de scripts de banco de dados dentro do addon. Para criar um script de banco no Add-on Studio, basta seguir as instruções detalhadas nesta documentação, garantindo que o armazenamento e o acesso aos dados estejam alinhados com as melhores práticas e requisitos da plataforma.

Criando o arquivo de script

Os arquivos de script devem ser criados dentro do diretório dbscripts no projeto do add-on. Para facilitar a manutenção e garantir uma melhor organização, adotamos um padrão de nomenclatura para os arquivos. Este padrão será especialmente útil quando houver múltiplos arquivos de script, exigindo a seguinte estrutura:

  • O nome do arquivo deve começar com a letra "V" maiúscula, seguida de um número que indique a ordem de execução do script, e terminar com a extensão ".xml". Por exemplo: V1.xml, V2.xml, V3.xml, e assim por diante.
    Seguir essa nomenclatura de versionamento é recomendado para garantir a atomicidade dos scripts e minimizar o risco de erros.

❗️

Importante

Caso a nomenclatura dos arquivos de scripts não siga o padrão recomendado, um erro será lançado no terminal da IDE após execução da task deployAddon.

A estrutura do arquivo de scripts deve seguir o padrão abaixo:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<scripts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="../.gradle/scripts.xsd">

    <sql nomeTabela="TB_ORDEM" ordem="1" executar="SE_NAO_EXISTIR" tipoObjeto="TABLE" nomeObjeto="TB_ORDEM">

        <mssql>
            CREATE TABLE TB_ORDEM (
            ID           INT IDENTITY(1,1) PRIMARY KEY,
            CARGA        VARCHAR(50),
            NUM_ORDEM    VARCHAR(50),
            DESCRICAO    VARCHAR(255)
            )
        </mssql>

        <oracle>
            CREATE TABLE TB_ORDEM (
            ID           NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
            CARGA        VARCHAR2(50),
            NUM_ORDEM    VARCHAR2(50),
            DESCRICAO    VARCHAR2(255)
            )
        </oracle>
    </sql>

    <sql nomeTabela="TB_ORDEM" ordem="2" executar="SE_NAO_EXISTIR" tipoObjeto="COLUMN" nomeObjeto="COLUMN_TESTE">
        <mssql>
            ALTER TABLE TB_ORDEM ADD TESTE VARCHAR(10)
        </mssql>

        <oracle>
            ALTER TABLE TB_ORDEM ADD TESTE VARCHAR2(10)
        </oracle>
    </sql>
</scripts>

Podemos observar que a tag existem alguns atributos, que são:

  • nomeTabela: O atributo nomeTabela define qual será o nome da tabela a qual este script faz referência.
  • ordem: O atributo ordem faz referência à ordem em que os scripts serão executados. Essa ordem deve SEMPRE ser um valor numérico e incremental, além disso, não podem haver ordens duplicadas dentro de um mesmo arquivo de scripts. É de vital importância prestar atenção a esta ordem. Se ela não for corretamente seguida, erros podem ocorrer durante o deploy do add-on.
    • Exemplo: Não é possível criar uma VIEW antes que a tabela que esta view consultará seja criada. Da mesma forma como não é possível criar uma chave estrangeira antes de criar a Tabela referente à ela.
  • executar: O atributo executar define quando um script deve ser executado.
    • Exemplo: Um script de criar tabela SÓ deve ser executado SE a tabela NÃO existir. Já um script de UPDATE no banco de dados, talvez possa ser executado sempre. Seus valores possíveis são:
      • SEMPRE: O script será executado SEMPRE.
      • SE_NAO_EXISTIR: O script será executado somente se o objeto não existir.
      • SE_EXISTIR: O Script será executado se o objeto existir.
  • tipoObjeto: O atributo tipoObjeto define qual o tipo do objeto representado no script. Seus possíveis valores são:
    • COLUMN
    • TABLE
    • TRIGGER
    • PROCEDURE
    • FUNCTION
    • FOREING KEY
    • PRIMARY KEY
    • INDEX
    • VIEW
    • CONSTRAINT
  • nomeObjeto: O atributo nomeObjeto define o nome usado para identificar o addon no momento da instalação. É crucial que esse nome seja único para cada objeto a ser criado dentro do script.

👍

Dica!

Para obter mais informações sobre cada item do menu, basta posicionar o cursor do mouse sobre o item desejado na IDE. A documentação correspondente será exibida automaticamente como uma dica ou pop-up.

As tags e indicam os trechos de script específicos para cada tipo de banco de dados. Se você estiver dando suporte apenas a um deles, inclua apenas a tag correspondente ao banco suportado.

🚧

Importante

Não recomendamos que os scripts tenham “;”, já que isso pode causar problemas durante a instalação do add-on.

Efetuando o deploy do addon

Após gerar seus scripts, execute o comando abaixo:

./gradlew clean deployAddon

Tanto no terminal da IDE quando no log do servidor a seguinte mensagem deve ser apresentada para cada objeto criado no script, conforme imagem abaixo:

Isso identifica que seus scripts foram processados sem nenhum erro. Acesse o banco de dados e confirme que seus objetos foram criados conforme o esperado.