Skip to content

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:

plift generate c=databases

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:

plift generate c=databases

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

plift migrate-databases

This will:

  1. Generate migration SQL files for each app
  2. Wait for database services to be ready
  3. Execute migrations automatically
  4. Create databases and users as needed

Migration Templates

Migration files are generated from templates:

  • salt/actions/generate/templates/migrations/mysql_init.sql.j2
  • salt/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.local or http://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:

mysql -h localhost -P 3307 -u plift -pplift

PostgreSQL:

psql -h localhost -p 5433 -U plift