Marcelo Albuquerque
Posted on May 5, 2023
Ao atualizarmos o Ghost para sua versão 5, diversos scripts de migração são executados, incluindo scripts que realizam alterações no Banco de Dados. E é justamente um desses scripts que ao não conseguir realizar uma mudança na base de dados, impossibilita a execução do Ghost.
Esse script tenta realizar uma mudança que afeta uma tabela com foreign key constraint
, o que é bloqueado pelo Banco de Dados.
O script em questão, tenta executar o seguinte:
alter table `subscriptions` modify `tier_id` varchar(24) not null
Podemos observar que ele tenta executar uma mudança na tabela subscriptions
e nos retorna o seguinte erro:
Message: Ghost was able to start, but errored during boot with: alter table `subscriptions` modify `tier_id` varchar(24) not null - Cannot change column 'tier_id': used in a foreign key constraint 'subscriptions_tier_id_foreign'
Context: [object Object]
Help: Error occurred while executing the following migration: 2022-10-18-05-39-drop-nullable-tier-id.js
Para solucionar esse problema devemos desabilitar a checagem foreign keys
antes de executar o script, após a execução da query
podemos reabilitar a checagem normalmente. O script a seguir deve ser executado diretamente na base de dados de forma manual:
USE ghost_test; # Aqui seleciono a base de dados onde a tabela se encontra
SET foreign_key_checks = 0; # Desabilito as checagens foreign keys
alter table `subscriptions` modify `tier_id` varchar(24) not null; # Executo a query que o Ghost tentou realizar
SET foreign_key_checks = 1; # Reabilito as checagens foreign keys
Agora, de volta ao Ghost, podemos executar o comando para iniciar sua execução:
ghost start
Processo finalizado!
Posted on May 5, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
October 21, 2023