Being a chronic migraine sufferer, I would say that botox injection around the head and shoulder works for me best. However the effects lasted me for 4.5 months.
I still remember that after the injections, the skin and muscle around my head and shoulder tightens and the pain and giddiness were gone. I was very happy and my wife said that she has not seen me so active and happy for such a long time.
However once the effects subsided, things turned for the worse and I had to be hospitalised and go on a IV drip treatment to halt the migraine pains.
The botox treatment is very expensive for my pay grade so I did not continue such treatment anymore. But I would imagine if anyone can afford it long-term, the treatment will really let you carry on your life normally.
As for myself, I currently still suffers from migraine and each time it lasts on average, 2 weeks. I am no longer on any long-term medication (the withdrawal syndrome from cutting away SSNRI drugs were very nasty!) and I simply manage my activities carefully and take as much rest as possible when needed.