Introdução
Este tutorial foi elaborado para orientar o processo de migração de qualquer versão anterior do DSpace para as versões 8 ou 9.
O guia apresenta, de forma detalhada e ordenada, o passo a passo para migrar uma instalação antiga do DSpace para as versões mais recentes, garantindo a preservação de todos os dados, configurações e estatísticas. Também aborda a instalação do back-end (Java) e do front-end (Angular).
Independentemente da sua versão atual, este material pode servir como referência para planejar e executar a atualização do seu repositório. Em caso de dúvidas ou problemas na execução do roteiro, entre em contato pelo Discord: https://discord.gg/TMEmzYBPPR
Convenção utilizada neste tutorial
Para facilitar a leitura e evitar ambiguidades, os caminhos e diretórios serão representados conforme a convenção abaixo:
- [dspace-antigo] → Diretório de instalação do DSpace antigo
- [dspace] → Diretório de instalação do novo DSpace
- [dspace-source] → Diretório contendo o código-fonte do novo DSpace
1. Preparação do Ambiente
Instale os seguintes softwares no novo servidor:
- JDK 17
- Maven 3.8.x
- Ant 1.10+
- PostgreSQL 12.x ou superior (com a extensão pgcrypto)
- Solr
- Node.js v22.x
- Yarn (DSpace 8)
- PM2
2. Backup dos Dados Existentes
Faça backup completo da instalação antiga do DSpace antes de iniciar a migração.
2.1 Faça o dump da base de dados PostgreSQL
Faça um dump completo (backup) da base de dados PostgreSQL atual para garantir a preservação dos dados durante a migração e a posterior importação na nova versão.
pg_dump -U [db_username] -h [host] -p 5432 [db_name] > dump.sql
2.2 Exporte as estatísticas do Solr
Para garantir que as estatísticas do SOLR sejam preservadas e possam ser utilizadas na nova instalação, é necessário exportá-las do sistema antigo. Estes dados incluem informações importantes de autoridade (authority
) e estatísticas de uso (statistics
), que ajudam na manutenção e análise da base.
Para isso, execute os seguintes comandos no diretório de instalação do DSpace antigo:
[dspace-antigo]/bin/dspace solr-export-statistics -i authority
[dspace-antigo
]/bin/dspace solr-export-statistics -i statistics
A execução desses comandos acima irá gerar, dentro do diretório [dspace-antigo]
, uma pasta chamada solr-export
contendo os arquivos CSV exportados com as estatísticas do Solr.
2.3 Faça uma cópia do diretório assetstore
O diretório assetstore está localizado na instalação do DSpace e contém todos os arquivos armazenados no sistema, incluindo subdiretórios e seus conteúdos. Para garantir que nenhum dado seja perdido durante a migração, é fundamental copiar todo o conteúdo dessa pasta. Você pode optar por compactá-la (zip) para facilitar a transferência ou copiar diretamente o diretório completo para um local seguro.
Exemplo de comando para copiar:
cp -r [dspace-antigo]/assetstore /path/de/backup/
3. Preparação do Banco de Dados
3.1 Crie um banco de dados e usuário para o DSpace
Primeiro, acesse o terminal do PostgreSQL com o usuário administrador:
sudo -u postgres psql
No prompt do PostgreSQL, execute os comandos abaixo. As linhas que começam com --
são comentários explicativos e não devem ser digitadas. Recomendamos substituir #mysafepassword#
por uma senha forte e de sua preferência.
-- Cria um novo usuário chamado "dspace" com a senha definida.
CREATE USER dspace WITH PASSWORD '#mysafepassword#';
-- Cria um novo banco de dados chamado "dspace" e define o usuário "dspace" como proprietário.
CREATE DATABASE dspace OWNER dspace;
-- Concede todos os privilégios no banco de dados "dspace" ao usuário "dspace".
GRANT ALL PRIVILEGES ON DATABASE dspace TO dspace;
-- Conecta-se ao banco de dados "dspace" para executar comandos dentro dele.
\c dspace
-- Ativa a extensão "pgcrypto", que fornece funções criptográficas necessárias para o DSpace.
CREATE EXTENSION IF NOT EXISTS pgcrypto;
-- Confirma que a extensão "pgcrypto" está instalada no banco de dados.
SELECT * FROM pg_extension WHERE extname = 'pgcrypto';
-- Sai do terminal do PostgreSQL.
exit
3.2 Importe o dump do banco de dados
Para restaurar os dados do banco antigo na nova instalação, você deve importar o arquivo de backup (dump.sql
) que foi gerado anteriormente. Este comando executa o arquivo SQL e recria todas as tabelas, dados e estruturas no banco de dados dspace
.
Execute o seguinte comando no terminal, substituindo <caminho-absoluto>/dump.sql
pelo caminho real do seu arquivo de backup:
psql -U dspace -d dspace -f "<caminho-absoluto>/dump.sql"
-U dspace
: especifica o usuário do banco de dados que fará a importação.-d dspace
: indica o banco de dados de destino onde os dados serão importados.-f "<caminho-absoluto>/dump.sql"
: aponta para o arquivo SQL que contém o backup a ser restaurado.
4. Instalação do Back-end (Servidor)
4.1 Baixe o código-fonte da versão desejada
Acesse o repositório oficial do DSpace no GitHub, localize a tag da versão que deseja instalar (por exemplo, dspace-9.0
) e baixe o arquivo .zip
ou .tar.gz
. Em seguida, extraia o conteúdo para um diretório de trabalho, que chamaremos de dspace-source
.
4.2 Crie o diretório de instalação
Crie o diretório onde o DSpace será instalado e conceda permissão de acesso ao usuário que irá executá-lo:
mkdir [dspace]
chown [usuario-de-execução] [dspace]
[dspace]
será o diretório final da instalação.[seu-usuario]
deve ser substituído pelo usuário do sistema que executará o DSpace.
4.3 Preencha as variáveis de ambiente do DSpace Servidor
O arquivo local.cfg
define parâmetros essenciais de configuração. Navegue até o diretório [dspace-source]/dspace/config
, faça uma cópia do arquivo local.cfg.EXAMPLE
para local.cfg
e edite-o configurando, no mínimo, as variáveis abaixo:
dspace.dir=/dspace
dspace.server.url=https://[host]/server
dspace.ui.url=https://[host]
solr.server=http://localhost:8983/solr
db.url=jdbc:postgresql://localhost:5432/dspace
db.username=dspace
db.password=#mysafepassword#
Importante: substitua os valores de exemplo acima pelos valores reais do seu ambiente.
dspace.dir
: Caminho no sistema onde o DSpace será instalado e executado (diretório base do sistema).dspace.server.url
: URL pública da API REST do DSpace, usada por clientes como o front-end Angular.dspace.ui.url
: URL onde os usuários acessam a interface web do DSpace (Angular).solr.server
: Endereço do serviço Solr, responsável pelas buscas e indexação de conteúdo.db.url
: URL de conexão com o banco PostgreSQL, incluindo host, porta e nome do banco de dados.db.username
: Nome do usuário do PostgreSQL usado pelo DSpace.db.password
: Senha correspondente ao usuário do banco de dados.
4.4 Compile o DSpace
Compile o código-fonte para gerar os arquivos necessários à instalação:
cd [dspace-source]
mvn package
Esse comando irá baixar dependências, compilar o código e criar os pacotes na pasta dspace/target/dspace-installer
.
4.5 Instalar o DSpace Servidor
Após a compilação, execute o instalador para criar a estrutura de diretórios e copiar os arquivos para o diretório de instalação [dspace]
:
cd [dspace-source]/dspace/target/dspace-installer
ant fresh_install
O parâmetro fresh_install
garante que a instalação seja feita do zero, sem aproveitar dados ou configurações de uma instalação anterior.
5. Migração de Dados
5.1 Copie o diretório assetstore
antigo para a nova pasta de instalação
O diretório assetstore armazena todos os arquivos carregados no DSpace (documentos, imagens, vídeos, etc.), organizados em subdiretórios internos. Para que o novo DSpace mantenha todos os itens já existentes, é necessário copiar o conteúdo do assetstore do backup (feito na instalação antiga) para o diretório da nova instalação.
Execute o comando abaixo, substituindo [backup-assetstore-antigo]
pelo caminho onde está o backup do assetstore:
cp -r [backup
-assetstore-antigo] [dspace]/
Observação:
- Esse procedimento apenas transfere os arquivos físicos; os metadados e referências a eles são mantidos no banco de dados.
- Certifique-se de que as permissões e o proprietário dos arquivos no novo servidor permitam que o usuário que executa o DSpace possa acessá-los.
5.2 Execute a migração do banco de dados para a nova versão
Para atualizar a estrutura do banco de dados do DSpace antigo para a versão mais recente, é necessário executar o script de migração. Esse processo aplica todas as alterações necessárias no esquema e nos dados para garantir compatibilidade com a nova versão do sistema.
Execute o comando abaixo no diretório da nova instalação:
# Se estiver atualizando a partir do DSpace 6.x ou anterior
[dspace]/bin/dspace database migrate ignored
# Se estiver atualizando a partir do DSpace 7.x ou superior
[dspace]/bin/dspace database migrate
5.3 Copie os cores do Solr
O DSpace cria seis cores Solr vazios e pré-configurados. Para que o Solr os reconheça, copie-os de [dspace]/solr
para o diretório onde o Solr procura suas configurações — que, na instalação padrão, é [solr]/server/solr/configsets
— por exemplo:”
cp -R [dspace]/solr/* [solr]/server/solr/configsets
# Caso o Solr seja executado pelo usuário "solr", ajuste as permissões com:
chown -R solr:solr [solr]/server/solr/configsets
5.4 Reinicei o Solr
Reinicie o serviço do Solr para aplicar as configurações e garantir que os dados sejam carregados corretamente:
[solr]/bin/solr stop
[solr]/bin/solr start -Dsolr.config.lib.enabled=true
5.5 Importe as estatísticas do Solr
Para importar as estatísticas exportadas do Solr para a nova instalação do DSpace, execute os seguintes comandos:
[dspace]/bin/dspace solr-import-statistics -i authority -d [/path/solr-export]
[dspace]/bin/dspace solr-import-statistics -i statistics -d [/path/solr-export]
O parâmetro -d
é opcional e serve para indicar o caminho onde estão localizados os arquivos CSV exportados.
Se não for informado, o diretório padrão utilizado será [dspace]/solr-export
.
5.6 Reindexe todo o conteúdo para busca e navegação
Após a migração, é necessário recriar os índices de busca e navegação do DSpace para que todo o conteúdo esteja disponível corretamente nas funcionalidades de search e navegação.
Para reindexar manualmente, execute:
[dspace]/bin/dspace index-discovery -b
Observação: O parâmetro -b
realiza uma reindexação completa (build), recriando todos os índices do zero. Esse processo pode levar tempo, dependendo do volume de conteúdo.
Opcionalmente, se você utiliza OAI-PMH, também será necessário reindexar o conteúdo para esse endpoint:
[dspace]/bin/dspace oai import
5.7 Inicie a aplicação back-end
Para iniciar o back-end do DSpace manualmente, execute:
java -jar /dspace/webapps/server-boot.jar
Isso inicializará a API REST, permitindo que o front-end (Angular) e outras integrações se comuniquem com o sistema.
Acesse http://[host]:8080/server
para verificar se a API está respondendo corretamente (porta 8080
é a padrão, mas pode ser alterada).
Recomendação:
Em ambientes de produção, é altamente recomendável configurar o server-boot.jar
como um serviço no Linux (via systemd
ou outro gerenciador de serviços) para garantir que o back-end inicie automaticamente junto com o servidor e seja reiniciado em caso de falhas.
6. Instalação do Front-end (Angular)
Configuração da interface web do DSpace, baseada em Angular. Essencial para interação com o repositório via navegador.
6.1 Baixe o código-fonte da versão desejada
Acesse o repositório oficial dspace-angular
no GitHub, selecione a versão desejada (ex: dspace-9.0
) e baixe o código-fonte em .zip
ou .tar.gz
. Extraia para um diretório de trabalho local.
6.2 Instalação das dependências e compilação do projeto
Entre na pasta do projeto:
cd [dspace-angular]
Instale as dependências:
- DSpace 8:
yarn install
- DSpace 9:
npm install
Compile o projeto em modo de produção:
- DSpace 8:
yarn run build:prod
- DSpace 9:
npm run build:prod
Isso gera os arquivos otimizados para execução em produção.
6.3 Preencha as variáveis de ambiente do front-end
Copie o arquivo de configuração de exemplo:
cp config/config.example.yml config/config.prod.yml
Edite os valores conforme o seu ambiente, por exemplo:
ui:
ssl: false
host: [host-front]
port: 4000
nameSpace: /
rest:
ssl: true
host: [host-server]
port: 443
nameSpace: /server
ssrBaseUrl: http://localhost:8080/server
Esta configuração conecta o front-end Angular ao back-end REST do DSpace, em que.
ui:
(Variáveis do Front-end Angular do DSpace)- ssl: Define se o front-end será acessado via HTTPS (
true
) ou HTTP (false
). - host: Endereço do servidor onde o front-end será executado (geralmente
localhost
em ambiente local). - port: Porta usada para acessar o front-end no navegador (ex:
4000
). - nameSpace: Caminho base da aplicação no navegador (geralmente
/
).
- ssl: Define se o front-end será acessado via HTTPS (
rest:
(Variáveis do Back-end REST do DSpace)- ssl: Define se o back-end REST está configurado com HTTPS (
true
) ou HTTP (false
). - host: Domínio ou IP onde o back-end REST do DSpace está rodando.
- port: Porta usada para acessar o back-end REST (normalmente
443
para HTTPS). - nameSpace: Caminho base do back-end REST (ex:
/server
). - ssrBaseUrl: URL usada no servidor Angular para renderização do lado do servidor (SSR); melhora a performance quando front-end e back-end estão no mesmo host. Ao definir o ssrBaseUrl, é obrigatório configurar também o dspace.server.ssr.url com o mesmo valor no local.cfg do back-end.
- ssl: Define se o back-end REST está configurado com HTTPS (
6.4 Inicie a aplicação manualmente
- DSpace 8:
yarn start
- DSpace 9:
npm start
Isso inicia o servidor Angular localmente para testes ou uso manual.
Acesse http://[host]:4000
para verificar se a interface web do DSpace está funcionando corretamente. Se tudo estiver certo, a página será carregada sem erros.
7. Criar conta de administrador
Para criar um usuário administrador do sistema, execute o seguinte comando no terminal:
/dspace/bin/dspace create-administrator
Você será solicitado a informar os seguintes dados:
- Endereço de e-mail do administrador (será o login)
- Nome completo
- Senha de acesso (com confirmação)
Após a criação, você poderá usar esse usuário para acessar a interface administrativa do DSpace via web.
Formulários de submissão
A partir do DSpace 7, a configuração de submissão foi reformulada:
- O antigo arquivo
item-submission.xml
teve seu formato alterado.- O arquivo
input-forms.xml
foi substituído por um novo:submission-forms.xml
.Este tutorial não abrange a migração dessas configurações.
A migração dos formulários de submissão deve ser feita manual e cuidadosamente, adaptando os dados para o novo formato utilizado nas versões mais recentes do DSpace.
Referências
Em caso de dúvidas durante o processo de migração, administração ou manutenção do DSpace, consulte a documentação oficial. Abaixo estão alguns links utilizados como base para a elaboração deste roteiro: