Bom dia,
Deixo a mesma resposta que coloquei no post do Diogo:
Assumindo que já foi criado a coluna comprador_id em Compras, façam um select * from compras e vejam os valores da coluna comprador_id.
Para que você possa definir esta coluna como chave estrangeira de outra tabela, como já existem dados populando a table Compras, você tem que garantir que todos registros de Compras tem um valor na coluna comprador_id que existe na tabela Compradores.id.
Ou seja, faça updates na tabela Compras para definir que a coluna comprador_id seja = 1 por exemplo, desde que na tabela Compradores exista um registro onde a coluna id é 1.
Ficou claro? Após garantir que não sobrou registro nenhum na tabela Compras cujo valor da coluna comprador_id é nulo ou aponta para um valor inexistente da coluna id de Compradores, pode rodar este comando de Foreign Key que dará certo. Qualquer coisa estamos ai.
Abraços.