2018-03-19 19:25:13 +01:00
|
|
|
# Content Database
|
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
|
|
|
|
2020-04-21 00:01:59 +02:00
|
|
|
Content database for Minetest mods, games, and more.\
|
2021-01-30 17:59:42 +01:00
|
|
|
Developed by rubenwardy, license AGPLv3.0+.
|
2018-05-25 18:41:16 +02:00
|
|
|
|
2021-01-26 18:04:34 +01:00
|
|
|
See [Getting Started](docs/getting_started.md).
|
2020-09-01 15:57:03 +02:00
|
|
|
|
|
|
|
## How-tos
|
|
|
|
|
|
|
|
```sh
|
2020-01-18 02:42:47 +01:00
|
|
|
# Hot/live reload (only works with FLASK_DEBUG=1)
|
|
|
|
./utils/reload.sh
|
|
|
|
|
2020-09-01 15:57:03 +02:00
|
|
|
# Cold update a running version of CDB with minimal downtime (production)
|
2020-01-18 02:42:47 +01:00
|
|
|
./utils/update.sh
|
2020-09-01 15:57:03 +02:00
|
|
|
|
|
|
|
# Enter docker
|
|
|
|
./utils/bash.sh
|
|
|
|
|
|
|
|
# Run migrations
|
|
|
|
./utils/run_migrations.sh
|
|
|
|
|
|
|
|
# Create new migration
|
|
|
|
./utils/create_migration.sh
|
2018-05-25 18:41:16 +02:00
|
|
|
```
|
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)
|
|
|
|
* Click no to installing pylint (we don't want it to be installed outside of a virtual env)
|
|
|
|
* 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
|
|
|
|
```
|