Fiz mais algumas investigações sobre isso Updating AI plugin fails
Minha principal pergunta era por que isso só acontece ao atualizar um plugin já instalado e não quando o plugin é recém-instalado. A resposta é que o core captura exceções PG::UndefinedTable, mas não PG:UndefinedColumn. Se o plugin já estiver instalado, a exceção é a última; se o plugin for novo, é a primeira.