Bugsink 2.0 upgraded to Django 5.2 (from 4.2) under the hood. However, Django
5.0 made it so that on MariaDB >= 10.7, UUIDFields are stored as native UUID
fields, and special conversion steps are required.
The Django 5.0 release notes suggest basically downgrading your existing UUIDs
to CharField values and sticking with that forever, but that's not a workable
solution for us for many reasons:
* Bugsink is multi-DB-backend, and this change would affect them all. I don't
want to force postgres-users to downgrade just for this.
* Bugsink 2.0 is already out in the wild, and people who've deployed it on
MariaDB >= 10.7 would already "be in the correct future" (have UUID columns).
i.e. the "solution" would just create the inverse problem.
* What with new models with new UUID fields? We'd run the rist of a "mix" with
all the future complexity that comes with _that_.
So I've decided to just bite the bullet and force an upgrade. The provided
command allows users to upgrade their data. Just run:
```
bugsink-manage convert_mariadb_uuids
```
I have not (yet) provided this as a migration (it's always an option for the
future)... mostly for lack of time but also because we "need this as a command
anyway"... because people that would be on MariaDB < 10.7 still need this
tool whenever they migrate to >= 10.7.
Fix#226
we only support one kind: files.
(in the past it was useful to send-to-self already uploaded items,
but this idea is never used in practice, and the whole idea of having to supply a
'kind' on the cmdline is confusing)
the store API is deprecated and b/c it doesn't support the ingest/digest
split can be quite confusing.
this is similar to 2b8efc9452 (for the stress_test command the 'store'
API option was removed entirely)
As had been noted on some of the commands, 'ingest' was not the best place for
them. However, [project-level apps are not supported in
Django](https://forum.djangoproject.com/t/allow-project-to-have-management-commands/5220/2)
So just create a 'main' app. I want to qualify it as 'myproject-main' though, to avoid
further unqualified global namespace pollution. And I want to avoid prefixing with 'bugsink'
b/c that's annoying for tab-completion. So 'bs' it is.
I've moved all commands over; even though a case could be made that the "feeding" commands
(raise_exception, send_json, stress_test) are somewhat related to ingestion, that's not
a very good case :-)