Criei uma coluna com o tipo de texto e larguei. Então eu queria criar uma coluna com o mesmo nome, mas com o tipo booleano. No entanto, o sistema me disse:
Cannot re-add previously dropped column 'isyoung' of type boolean, \
incompatible with previous type text
Não encontrei nenhuma informação relevante no site da Cassandra. Eu já havia descartado a coluna, mas não consegui alterar a tabela para adicionar essa coluna de volta.
Não quero reconstruir toda a minha mesa. Como posso alterar o tipo da coluna?
Não é possível alterar o tipo de dados de uma coluna.
A capacidade de fazer isso foi removida no Cassandra 3.0.11 e 3.10 ( CASSANDRA-12443 ) porque causa muitos problemas, incluindo nós incapazes de iniciar, incapazes de reproduzir mutações de commitlog e outros dados corrompidos.
Lembre-se de que no Cassandra, os SSTables são imutáveis - eles não mudam ou são atualizados depois de gravados no disco. Se a alteração dos tipos de coluna fosse permitida, isso tornaria os dados nas SSTables existentes ilegíveis porque os dados não correspondem mais ao esquema.
Da mesma forma, seria impossível restaurar os dados dos backups porque o esquema ativo não corresponderia mais ao esquema nos backups.
Da mesma forma, se você tentar executar
ALTER TABLE ... TYPE
, o comando retornará um erro semelhante a:Soltar e adicionar novamente uma coluna com o mesmo nome, mas com um tipo diferente, também causa os mesmos problemas, por isso também foi desabilitado há muito tempo ( CASSANDRA-14843 , CASSANDRA-14948 ). Saúde!