The MySQL database saves data on a hard drive.
It holds all long-term information.
Querying information is done via
More detailed information about queries can be found in the php reference.
Related issue: Extract SQL Statements To Gateways.
As described in Set up and Database access we can view the dev database in a browser via phpmyadmin. Many table and column names should be self-explanatory. Many are not unfortunately. (If you create new tables, make sure a comment is not necessary!) That's why here we start a list with explanations to the tables and columns. Please add to this when it was not obvious to you what a table/column was representing and you figured it out. If you found this information well described in some file (e.g. some Gateway-php-file), please just link this location to avoid information duplication.
Some information can also be inferred by the list of limitations and problems
/database_fixup.md in the top level directory.
Theoretically there is also the possibility to add a comment for the column in the database, e.g. for team status in fs_betrieb. It hasn't been established to use those and adding them later is not as easy as adding the information here since it would require Database migration.
The Redis database saves data in memory. It holds all short-term information and caches some of the information gotten from the MySQL database. Information in Redis include session IDs (Who is loged in?), and email queues.
We are using phinx for database migrations. If your code change requires customization of the database,
migration templates can be created with
./scripts/docker-compose exec app vendor/bin/phinx create MyNewMigration
Run the command
sudo chmod 775 migrations/yourfilebefore your first edit.
You can test the migration with
./scripts/docker-compose exec app vendor/bin/phinx migrate --dry-run (which "runs" all not yet applied migrations which in that case should be just your new one).
For examples you can have a look at migrations/ folder and https://book.cakephp.org/phinx/0/en/migrations.html.