Database Management¶
PLift can automatically create database users and manage permissions for your applications.
MySQL User Management¶
Configure in configs/databases/mysql/init.sls:
databases_mysql:
users:
app_user:
mysql:
present: true
password: secure_password
schema:
app_database:
allow_from: '%'
grants:
- SELECT
- INSERT
- UPDATE
- DELETE
revoked_grants:
- DROP
- ALTER
Generate and apply:
PostgreSQL User Management¶
Configure in configs/databases/postgresql/init.sls:
databases_postgresql:
users:
app_user:
postgresql:
present: true
password: secure_password
grants:
database:
app_database:
database:
- CONNECT
- CREATE
schema:
- [public, ALL]
table:
- [public, users, SELECT, INSERT, UPDATE]
sequence:
- [public, users_id_seq, USAGE, SELECT]
Generate and apply:
Database Migrations¶
PLift automatically generates and executes database migrations for all configured applications.
Automatic Migration Generation¶
- Creates SQL migration files in
generated_configs/migrations/ - Supports both MySQL and PostgreSQL
- Creates databases and users as specified in app configs
Running Migrations¶
This will:
- Generate migration SQL files for each app
- Wait for database services to be ready
- Execute migrations automatically
- Create databases and users as needed
Migration Templates¶
Migration files are generated from templates:
salt/actions/generate/templates/migrations/mysql_init.sql.j2salt/actions/generate/templates/migrations/postgresql_init.sql.j2
Default Credentials¶
MySQL¶
| Setting | Value |
|---|---|
| Host | localhost |
| Port | 3307 |
| Root User | plift |
| Root Password | plift |
PostgreSQL¶
| Setting | Value |
|---|---|
| Host | localhost |
| Port | 5433 |
| Default User | plift |
| Default Password | plift |
Database Administration¶
DBeaver CloudBeaver¶
Web-based database administration tool.
- URL:
https://dbeaver.plift.localorhttp://localhost:8978 - Credentials: plift/S3cret
Features: - Supports MySQL, PostgreSQL, and more - SQL query editor - Database schema browser
Direct Connection¶
Connect directly using your preferred database client:
MySQL:
PostgreSQL: