Both RAs and software engineers on the Seshat project need to know how they can update the production Seshat database(s) used by the live website.
We should document how this can be done and the exact steps to take for different kinds of operations.
The kinds of possible operations that I think should be documented:
For RAs
[ ] Adding data rows to existing tables, directly in PostgreSQL
[ ] Modifying data rows already present in the db, in PostgreSQL
@MajidBenam For these tasks, how do you currently manage edit requests; Enrico mentioned something about trying to make a change and you had to give him approval to make it? Is there some identity management in AWS or specifically to log into the database?
For engineers
[ ] Creating new tables for new types of data, via Django
[ ] Adding columns to existing tables, via Django
[ ] Changing the general structure and how existing tables are linked, via Django
@MajidBenam I'm just starting with Django, but I think should follow the same established workflow for updating the software generally (which we can also document), where we:
make a new branch off the dev branch
Make code changes, and for db changes this means adding to the migrations e.g. seshat/apps/core/migrations or the equivalent for whichever app/db it is
Make a PR for review
@MajidBenam Does a git pull on the production VM hosting the website, to introduce changes (and in the case of db changes, runs the new migrations)
Notes:
If we go down the route of having a separate database for spatial data from the "core" Seshat db, the documentation should also be clear to explain the distinction and how/when to update which one
It would also be useful to have documented how backups of the database(s) can be/ are saved and who can do that
Both RAs and software engineers on the Seshat project need to know how they can update the production Seshat database(s) used by the live website.
We should document how this can be done and the exact steps to take for different kinds of operations.
The kinds of possible operations that I think should be documented:
For RAs
@MajidBenam For these tasks, how do you currently manage edit requests; Enrico mentioned something about trying to make a change and you had to give him approval to make it? Is there some identity management in AWS or specifically to log into the database?
For engineers
@MajidBenam I'm just starting with Django, but I think should follow the same established workflow for updating the software generally (which we can also document), where we:
dev
branchseshat/apps/core/migrations
or the equivalent for whichever app/db it isNotes: