Pular para conteúdo

Integração com o PostgreSQL

1. Criação do Usuário e Banco de Dados

1.1. Execute no PostgreSQL:

CREATE USER sonatypeiq WITH PASSWORD 'teste123';
CREATE DATABASE sonatypeiq WITH OWNER sonatypeiq ENCODING 'UTF8';

1.2. Após isso, saia do shell do PostgreSQL.


2. Configurar Variáveis de Ambiente

2.1. No shell do sistema, defina as variáveis:

export DATABASE_TYPE=postgresql
export DATABASE_HOSTNAME=127.0.0.1
export DATABASE_PORT=5432
export DATABASE_NAME=sonatypeiq
export DATABASE_USERNAME=sonatypeiq
export DATABASE_PASSWORD=teste123

3. Gerar o Arquivo de Migração

3.1. Acesse o diretório de instalação do IQ Server:

cd /opt/sonatype-iq-server

3.2. Execute o comando que exporta o banco de dados embutido:

java -jar nexus-iq-server.jar export-embedded-db --dump-file iq-db-dump.sql.gz config.yml

Caso seja necessário baixar a versão sem Java, utilize:
https://help.sonatype.com/en/download-archives---iq-server---cli.html


4. Permitir leitura correta do arquivo de exportação

4.1. Defina a variável de ambiente:

export PGCLIENCODING=UTF8

5. Acessar o PostgreSQL

5.1. Acesse o Postgree:

sudo -u postgres psql # (1)!
  1. Digite a senha do usuário do banco, caso solicitado.

5.2. Agora, aplique a permissão necessária:

GRANT SET ON PARAMETER "session_replication_role" TO sonatypeiq;

6. Sair do PostgreSQL

\q

7. Importar o Arquivo Exportado no PostgreSQL

7.1. Execute:

gunzip -c iq-db-dump.sql.gz | psql --set ON_ERROR_STOP=1 --host 127.0.0.1 --port 5432 --username sonatypeiq --dbname sonatypeiq

8. Atualizar Configuração no Arquivo config.yml

8.1. Configuração esperada:

database:
  type: postgresql
  hostname: 127.0.0.1
  port: 5432
  name: sonatypeiq
  username: sonatypeiq
  password: teste123

8.2. Verifique se todos os valores foram atualizados corretamente.


9. Testar Conexão

9.1. Reinicie o IQ Server e verifique nos logs se o banco PostgreSQL está sendo utilizado corretamente.


Observação Importante

Ajustar pg_hba.conf

É necessário permitir autenticação via senha:

  • Alterar tudo que estiver peer para md5 dentro do arquivo pg_hba.conf.
Como localizar arquivos importantes

Obter caminho do postgresql.conf:

sudo -u postgres psql -t -A -c "SHOW config_file;"

Obter caminho do pg_hba.conf:

sudo -u postgres psql -t -A -c "SHOW hba_file;"

Obter diretório de dados:

sudo -u postgres psql -t -A -c "SHOW data_directory;"