42P07: duplicate_table
PostgreSQLO que significa?
A tabela (ou objeto similar) que está sendo criada já existe. O CREATE falhou porque existe um objeto com o mesmo nome.
Por que acontece?
Recriação de uma tabela existente com CREATE TABLE; execução do script duas vezes; reaplicação de migrations; conflito de nome com uma view/sequence/índice de mesmo nome.
Como resolver
Use IF NOT EXISTS para pular a criação quando o objeto já existir: CREATE TABLE IF NOT EXISTS my_table (...). Se você realmente quiser recriá-la, remova-a primeiro: DROP TABLE IF EXISTS my_table; Torne as migrations seguras para reexecução (idempotentes). Verifique o objeto existente com \dt.