contentdb/README.md

102 lines
2.6 KiB
Markdown
Raw Normal View History

2023-05-13 18:44:09 +02:00
# ContentDB
2021-05-03 19:42:47 +02:00
![Build Status](https://github.com/minetest/contentdb/actions/workflows/test.yml/badge.svg)
2018-03-19 19:25:13 +01:00
2023-05-13 18:44:09 +02:00
A content database for Minetest mods, games, and more.\
2021-01-30 17:59:42 +01:00
Developed by rubenwardy, license AGPLv3.0+.
2022-02-06 23:58:13 +01:00
See [Getting Started](docs/getting_started.md) for setting up a development/prodiction environment.
2022-02-07 00:08:42 +01:00
See [Developer Intro](docs/dev_intro.md) for an overview of the code organisation.
2022-05-20 19:05:45 +02:00
## Credits
* `app/public/static/placeholder.png`: erlehmann, Warr1024. License: CC BY-SA 3.0
## How-tos
```sh
# Hot/live reload (only works with FLASK_DEBUG=1)
./utils/reload.sh
# Cold update a running version of CDB with minimal downtime (production)
./utils/update.sh
# Enter docker
./utils/bash.sh
# Run migrations
./utils/run_migrations.sh
# Create new migration
./utils/create_migration.sh
# Delete database
docker-compose down && sudo rm -rf data/db
```
2019-11-27 02:06:24 +01:00
2020-09-01 16:05:31 +02:00
### VSCode: Setting up Linting
* (optional) Install the [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker)
* Install the [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
2023-06-18 23:07:46 +02:00
* Click no to installing pylint (we don't want it to be installed outside a virtual env)
2020-09-01 16:05:31 +02:00
* Set up a virtual env
* Replace `psycopg2` with `psycopg2_binary` in requirements.txt (because postgresql won't be installed on the system)
* `python3 -m venv env`
* Click yes to prompt to select virtual env for workspace
* Click yes to any prompts about installing pylint
* `source env/bin/activate`
* `pip install -r requirements`
* `pip install pylint` (if a prompt didn't appear)
* Undo changes to requirements.txt
### VSCode: Material Icon Folder Designations
```json
"material-icon-theme.folders.associations": {
"packages": "",
"tasks": "",
"api": "",
"meta": "",
"blueprints": "routes",
"scss": "sass",
"flatpages": "markdown",
"data": "temp",
"migrations": "archive",
"textures": "images",
"sounds": "audio"
}
```
2019-11-27 02:06:24 +01:00
## Database
```mermaid
classDiagram
User "1" --> "*" Package
User --> UserEmailVerification
User "1" --> "*" Notification
Package "1" --> "*" Release
Package "1" --> "*" Dependency
Package "1" --> "*" Tag
Package "1" --> "*" MetaPackage : provides
Release --> MinetestVersion
Package --> License
Dependency --> Package
Dependency --> MetaPackage
MetaPackage "1" --> "*" Package
Package "1" --> "*" Screenshot
Package "1" --> "*" Thread
Thread "1" --> "*" Reply
Thread "1" --> "*" User : watchers
User "1" --> "*" Thread
User "1" --> "*" Reply
User "1" --> "*" ForumTopic
User --> "0..1" EmailPreferences
User "1" --> "*" APIToken
APIToken --> Package
```