mozilla/kuma — pull request #2732 by groovecoder (2014-09-09 22:50:25+00:00)
Title: fix bug 1057286 - split file attachments from wiki into a separate application

**DNM** unless you are willing to perform the push instructions below.

Spot-check Instructions:
* Before checking out this branch of code, [create a local wiki doc](https://developer-local.allizom.org/en-US/docs/new?slug=User%3Agroovecoder) and [attach a file to it](https://developer.mozilla.org/en-US/docs/MDN/Contribute/Editor/Basics#The_attachments_box) to recreate some production-like existing data.
* Check out this branch of code.
* `vagrant ssh`
* `./manage.py migrate attachments --delete-ghost-migrations --fake 0003` to delete the old `wiki` app migration records and fake those same migrations in the new `attachments` app.
* `./manage.py migrate` to run the new `attachments` migration (Note: You **may** have to run `./manage.py migrate` twice.)
* [ ] Verify your existing wiki doc still shows the attached file after a force-refresh.
* Edit the doc - add or replace another attachment to it, and save.
* [ ] Verify your existing wiki doc shows updated attachment(s).
* [Create another new doc](https://developer-local.allizom.org/en-US/docs/new) and attach another file to it.
* [ ] Verify your new wiki doc shows new attachment.
* Re-hydrate because this probably took a long time?

Push instructions:
* [ ] Push any un-deployed changes: http://mzl.la/deployed-mdn
* [ ] Merge this code
* [ ] When the code is sync'd to dev, `ssh` to the MDN dev server and run: `./manage.py migrate attachments --delete-ghost-migrations --fake 0003 && ./manage.py migrate`
* [ ] Push the code to stage; push will fail on migrations - that's okay.
* [ ] `ssh` to the stage server and run: `./manage.py migrate attachments --delete-ghost-migrations --fake 0003 && ./manage.py migrate`
* [ ] Re-Push the code to stage; push will succeed
* [ ] Push the code to prod; push will fail on migrations - that's okay.
* [ ] `ssh` to the prod server and run: `./manage.py migrate attachments --delete-ghost-migrations --fake 0003 && ./manage.py migrate`
* [ ] Re-Push the code to prod; push will succeed