Hi Riaz!
I've had a look at temporal tables too, but without a particular use case. I was thinking about adding them to my library Django-MySQL (
https://django-mysql.readthedocs.io/en/latest/ ), which provides all kinds of Django - MySQL/MariaDB extensions. Temporal tables are indeed not supported by Django core or any library I have found.
For setting up temporal tables, you can use an extra RunSQL operation in the migration that does the CreateModel, to run e.g. "ALTER TABLE t ADD SYSTEM VERSIONING". Any specific migration operation there would be a fairly thin wrapper around this.
with system_time.as_of(some_datetime, Book):
books = list(books_qs)
This is a bit clunky but should work.
Ultimately I think this would be a good feature for core Django. Of the core backend databases, it seems that Oracle supports temporal tables too. The most popular third party backend is MS SQL, which also supports temporal tables. And it would need to be an extension to QuerySet for easy support, perhaps a method called QuerySet.as_of(). If you'd like to put together a proposal I'd be interested in helping that get started.
Thanks,
Adam