У меня есть идея проекта, согласно которой пользователи должны иметь возможность запрашивать базу данных, изменять ее содержимое и схему, а старые отчеты по-прежнему работать независимо от изменений DDL.
Существует ли механизм базы данных (например, sqlite), к которому можно обратиться из его текущего состояния или из любого прошлого момента времени (включая изменения DDL)?
Что-то, где я могу
- Вставить данные
- Завтра, изменить схемы таблиц
- Запрос данных на основе вчерашних данных и схем (возможно, на другом подключении к БД)
Мой ожидаемый размер БД, вероятно, небольшой (всего несколько МБ, определенно помещается в ОЗУ).
Я представляю себе нечто WAL, которое может запрашивать активную БД, но материализует старую версию для запросов по требованию,
- AWS Aurora может откатиться к моменту времени, но это большое дело
- Я мог бы создавать резервные копии БД для каждого оператора INSERT или ALTER, но это кажется неэффективным
- Я мог бы разработать хранилище данных на определенный момент времени / только для добавления в качестве бэкэнда VFS для Sqlite
- ...