A ferramenta de restauro standalone suporta personalização do comportamento do restauro através de um ficheiro de configuração JSON. Isto disponibiliza personalização baseada em filtros semelhante à do Plugin WordPress, mas sem precisar que o WordPress esteja a correr.
Nota: Se não existir nenhum ficheiro wpstg-restore-config.json, a ferramenta de restauro corre com o comportamento predefinido normal.
Como funciona
- Coloca um ficheiro chamado
wpstg-restore-config.jsonna mesma diretoria dowpstg-restore.php. - A ferramenta lê a configuração no arranque e aplica os valores dos filtros durante o restauro.
- Se não existir ficheiro de configuração, a ferramenta comporta-se como de costume, usando todas as predefinições.
Formato do ficheiro de configuração
{
"version": 1,
"filters": {
"filter.name": "value"
}
}
version: Versão do esquema. Tem de ser1.filters: Objeto que mapeia nomes de filtros para os seus valores.
Consulta wpstg-restore-config.example.json para um exemplo completo com todos os filtros definidos com os valores predefinidos.
Filtros disponíveis
Filtros booleanos
Estes filtros aceitam true ou false.
| Nome do filtro | Predefinição | Descrição |
|---|---|---|
wpstg.backup.restore.keepExistingPlugins | false | Quando true, os Plugins existentes não são apagados antes do restauro. Os Plugins do Backup são fundidos com a diretoria existente. |
wpstg.backup.restore.keepExistingThemes | false | Quando true, os Themes existentes não são apagados antes do restauro. |
wpstg.backup.restore.keepExistingMuPlugins | false | Quando true, os mu-plugins existentes não são apagados antes do restauro. |
wpstg.backup.restore.keepExistingMedia | false | Quando true, os uploads e ficheiros media existentes não são apagados antes do restauro. |
wpstg.backup.restore.keepExistingOtherFiles | false | Quando true, outros ficheiros em wp-content não são apagados antes do restauro. |
wpstg.backup.restore.innodbStrictModeOff | false | Quando true, desativa o modo estrito do InnoDB durante a importação da base de dados. Útil ao restaurar a partir de um servidor com definições InnoDB diferentes. |
Filtros de array
Estes filtros aceitam um array de strings.
| Nome do filtro | Predefinição | Descrição |
|---|---|---|
wpstg.backup.restore.exclude_backup_parts | [] | Partes a saltar inteiramente durante o restauro. Valores válidos: plugins, themes, uploads, muplugins, wpcontent, wpstgdb, lang, dropins, wproot. |
wpstg.backup.restore.exclude_paths | [] | Caminhos de diretorias a excluir durante o restauro de ficheiros. É adicionado automaticamente um / final, por isso "starter-templates" corresponde a caminhos que contenham starter-templates/ mas não starter-templates-pro/. Exemplo: ["starter-templates", "elementor"]. |
wpstg.backup.restore.exclude.tables | [] | Nomes de tabelas da base de dados a saltar durante o restauro. Exemplo: ["wp_comments", "wp_commentmeta"]. |
wpstg.database.import.excludedQueries | [] | Padrões de queries SQL a saltar durante a importação. Queries que contenham qualquer uma destas strings serão excluídas. |
Importante: Para exclude_paths, é adicionada automaticamente uma barra final. Isto ajuda a evitar correspondências parciais acidentais.
Exemplos de configuração
Restaurar mas manter os Plugins e Themes existentes
{
"version": 1,
"filters": {
"wpstg.backup.restore.keepExistingPlugins": true,
"wpstg.backup.restore.keepExistingThemes": true
}
}
Restaurar apenas a base de dados
Usa esta configuração para saltar todas as partes do Backup relacionadas com ficheiros.
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_backup_parts": [
"plugins",
"themes",
"uploads",
"muplugins",
"wpcontent",
"dropins",
"wproot",
"lang"
]
}
}
Excluir tabelas específicas do restauro da base de dados
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude.tables": [
"wp_comments",
"wp_commentmeta",
"wp_wc_orders"
]
}
}
Excluir Plugins e Themes específicos do restauro de ficheiros
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_paths": [
"starter-templates",
"elementor",
"themes/flavor"
]
}
}
Restaurar apenas ficheiros
Usa esta configuração para saltar o restauro da base de dados.
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_backup_parts": ["wpstgdb"]
}
}
Como os filtros são consumidos
- Diretamente pelo
Restorer: Os filtroskeepExisting*,exclude_backup_partseexclude_pathssão lidos diretamente pela classeRestorerda ferramenta de restauro para controlar que partes são restauradas, se os ficheiros existentes são apagados primeiro e que caminhos de ficheiros saltar durante o restauro. - Via
ApplyFiltersTrait: Os filtros relacionados com a base de dados, comoexclude.tables,excludedQuerieseinnodbStrictModeOff, são consumidos pela classeDatabaseImporterincluída, através doApplyFiltersTrait. Este trait verifica oFilterConfigcomo fallback quando os hooks do WordPress não estão disponíveis.
Validação e logging
- Nomes de filtros desconhecidos são registados como avisos e ignorados.
- Incompatibilidades de tipo, por exemplo definir um filtro booleano como array, são registadas como avisos e ignoradas.
- Todos os filtros ativos são registados no arranque do restauro para fins de debugging.
- JSON malformado produz um aviso e o restauro continua com o comportamento predefinido.
- Versões de configuração não suportadas produzem um aviso e todos os filtros são ignorados.
Dica de debugging: Se um filtro parecer não aplicar-se, primeiro consulta os logs de restauro à procura de avisos sobre nomes de filtros desconhecidos, tipos inválidos, JSON malformado ou versão de configuração não suportada.
Segurança
- Apenas nomes de filtros incluídos na whitelist são aceites.
- Apenas tipos primitivos como
boolestring, mais arrays de strings, são suportados. - Não é possível qualquer callable ou execução de código através do ficheiro de configuração.