Satisfazendo a "OCD digital" via rails c: essas operações diretas do ActiveRecord são totalmente seguras?

Olá a todos,

Como alguém que hospeda seu próprio servidor, recentemente peguei o “TOC digital”. Eu tinha algumas categorias e tags excluídas dos meus primeiros dias de testes, e eu realmente queria recuperar aqueles IDs limpos de um dígito (como ID da Categoria 2 e ID da Tag 3), em vez de deixar lacunas no meu banco de dados.

Eu sei que a interface não suporta isso, então fui para o console do Rails (./launcher enter app → rails c) para remontar as coisas manualmente. Tudo parece e funciona perfeitamente no front-end agora, mas estou curioso para saber se os especialistas em banco de dados por aqui veem algum perigo oculto ou armadilha a longo prazo em fazer isso.

Aqui está o fluxo de trabalho exato e detalhado que executei:

1. Recriando a categoria excluída usando seu antigo ID com todos os atributos: Em vez de apenas forçar um ID, eu forneci os atributos essenciais para que o registro esteja completo.

Ruby

Category.create!(
  id: 2, 
  name: "Site Feedback", 
  color: "0088CC", 
  text_color: "FFFFFF", 
  user_id: -1 # Usuário do sistema
)

2. Recuperando o tópico original e vinculando-o como descrição da categoria:

Ruby

Topic.with_deleted.find(1).recover!
Category.find(2).update!(topic_id: 1)

3. Limpando o subtipo do tópico (restaurando para o padrão original): Eu verifiquei outras categorias padrão e notei que os tópicos de descrição delas apenas usam nil, então eu o reverti para o estado da fábrica.

Ruby

Topic.find(1).update!(subtype: nil)

4. Recriando em massa as tags antigas para preencher as lacunas de ID:

Ruby

Tag.create!([
  { id: 3, name: "private-school" },
  { id: 7, name: "tennis" }
])

Minha principal pergunta: Eu entendo perfeitamente que não há necessidade prática para fazer isso, além de satisfazer meu próprio TOC. No entanto, estritamente do ponto de vista estrutural, os métodos básicos do ActiveRecord como .update! e .create! disparam com segurança todos os callbacks necessários do Discourse (indexação de busca, atualizações de cache do Redis, jobs do Sidekiq, roteamento, etc.)? Ou eu acidentalmente contornei alguma lógica interna crucial que pode quebrar uma futura migração de esquema?

Obrigado por satisfazer minha curiosidade!