---
title: "Rollback de versão do Signer"
description: "Como voltar o Signer on-premises para uma versão anterior: restaurar os binários e, se a atualização aplicou migrações, reverter o banco de dados SQL Server com o comando update-db."
canonical: "https://docs.lacunasoftware.com/articles/signer/on-premises/rollback"
locale: "pt-BR"
product: "Signer"
last_updated: "2026-10-20"
---

# Rollback de versão do Signer

Este artigo descreve como voltar uma instância [on-premises](https://docs.lacunasoftware.com/articles/signer/on-premises) do [Signer](https://docs.lacunasoftware.com/articles/signer) para uma versão anterior, incluindo a reversão das alterações de banco de dados (*migrações*) aplicadas pela atualização.

> **Aviso**
>
> Este é um procedimento sensível e de **alto risco**. O rollback pode causar **perda severa de dados**, de forma irreversível. Faça-o apenas em casos de extrema necessidade.
>
> Sempre que possível, reporte o bug ou problema ao time da Lacuna Software em vez de fazer o rollback.
>
> A decisão de realizar ou não o rollback, e as consequências dela, são de **responsabilidade exclusiva do time que administra a instância**.

## Antes de começar

Você vai precisar de:

* acesso aos servidores da aplicação;
* acesso ao banco de dados (SQL Server);
* o .NET instalado no ambiente em que o comando será executado;
* a *connection string* do banco de dados.

Recomendamos fortemente:

* **fazer um backup do banco de dados** antes de começar;
* testar o procedimento em um ambiente de homologação.

> **Perigo**
>
> O rollback das migrações não pode ser desfeito automaticamente e, dependendo das migrações removidas, pode causar perda de dados. Se você tiver qualquer dúvida sobre quais migrações devem ser removidas, **não prossiga** e entre em contato com o time da Lacuna Software.

## Passo a passo

### 1. Pare a aplicação e volte a versão dos binários

1. Pare todos os servidores da aplicação Signer.
2. Volte os binários para a versão anterior, a que você deseja restaurar. Para isso, siga as instruções de atualização da sua plataforma (por exemplo, [Linux](https://docs.lacunasoftware.com/articles/signer/on-premises/linux/update)) usando o pacote da versão anterior.

### 2. Verifique se a atualização alterou o banco de dados

Consulte o [changelog do Signer](https://docs.lacunasoftware.com/articles/signer/changelog) e verifique se a versão que está em uso contém alterações no modelo de banco de dados. Essas alterações aparecem no changelog como *Atualiza modelo de banco de dados* e são aplicadas por migrações. Confira também se as migrações foram de fato aplicadas ao seu banco (passo 5).

* Se **nenhuma migração foi aplicada**, basta voltar a versão dos binários (passo 1) e iniciar a aplicação (passo 8). Você **não** precisa executar os passos 3 a 7.
* Se **migrações foram aplicadas**, é preciso removê-las. Siga os próximos passos.

### 3. Obtenha os binários da versão que foi aplicada

> **Importante**
>
> Use os binários da versão que está em uso (a que você quer reverter), e **não** os da versão anterior. São eles que contêm as migrações a serem removidas.

Baixe o pacote da versão aplicada e extraia os arquivos em um diretório de trabalho:

* Windows: pacote `.zip`
* Linux: pacote `.tar.gz`

Os links de download de cada versão estão no [changelog do Signer](https://docs.lacunasoftware.com/articles/signer/changelog).

### 4. Configure a conexão com o banco de dados

No arquivo `appsettings.json` do diretório de trabalho, adicione a connection string:

```json
"ConnectionStrings": {
  "DefaultConnection": "<connection string>"
}
```

### 5. Identifique as migrações aplicadas

Conecte-se ao banco de dados e execute:

```sql
select * from __EFMigrationsHistory order by MigrationId
```

Essa tabela lista todas as migrações aplicadas. O campo `MigrationId` segue o formato `YYYYMMDDHHMMSS_NomeDaMigração`.

Então:

1. Compare a lista com o [changelog](https://docs.lacunasoftware.com/articles/signer/changelog), que indica os nomes das migrações de cada versão.
2. Identifique quais migrações pertencem à versão que você quer reverter.
3. Determine qual é a **última migração que deve ser mantida**. Ela é a *migração alvo* (*target migration*).

### 6. Reverta as migrações

Para remover todas as migrações posteriores à migração alvo, execute no diretório de trabalho:

```sh
dotnet Lacuna.Signer.Site.dll -- update-db <nome da migração alvo> --timeout 6000
```

Exemplo:

```sh
dotnet Lacuna.Signer.Site.dll -- update-db 20250101120000_AlgumaMigracao --timeout 6000
```

### 7. Valide o rollback

Execute novamente a consulta do passo 5:

```sql
select * from __EFMigrationsHistory order by MigrationId
```

Verifique que:

* a última migração da lista é a migração alvo;
* as migrações posteriores foram removidas.

### 8. Inicie a aplicação

Inicie novamente os servidores da aplicação Signer.

## Resumo

1. Pare os servidores e volte os binários para a versão anterior.
2. Consulte o changelog e confirme se houve migrações.
3. Baixe os binários da versão que foi aplicada.
4. Configure a connection string no `appsettings.json`.
5. Identifique a migração alvo em `__EFMigrationsHistory`.
6. Execute `update-db <migração alvo>`.
7. Valide a tabela `__EFMigrationsHistory`.
8. Inicie a aplicação.

## Veja também

* [Changelog do Signer](https://docs.lacunasoftware.com/articles/signer/changelog)
* [Atualizando para 3.x](https://docs.lacunasoftware.com/articles/signer/on-premises/update-30)
* [Atualização do Signer em Linux](https://docs.lacunasoftware.com/articles/signer/on-premises/linux/update)
