I once gave up for 16 weeks when training for my first marathon and it made me miserable and anti-social.
I never drink on a school night but usually have a few pints on either a Friday or Saturday night. I try to avoid anything in the 7 days before but did have 2 pints the night before VLM last year just to calm my nerves and help me sleep and I ended up having the race of my life.
You try and fail all the time. Maybe that's trying to tell you something.
Skipping one race to allow a better performance at another is not failure it's common sense.
Or maybe I just think differently than you do.
My advice would be to not run Barcelona. Go and enjoy the weekend and rest the injury.
When you get back, go straight into your taper for London and aim to give it 100% there.
At the moment you are setting yourself up to fail at both. With a bit of rest you will give yourself the best chance of getting 1 decent sub-3 attempt in.