# defaults/ This directory contains default variable definition files for the `docker-mariadb` Ansible role. It centralizes all configurable values related to MariaDB deployment and can be adjusted without modifying task logic. --- ## files and their purpose ### `main.yml` Defines default values for how the MariaDB database should be created. * **`database_encoding`** (string): * **Default:** `"utf8mb4"` * **Reasoning:** * **Full Unicode support**: `utf8mb4` is the only MySQL/MariaDB character set that fully implements 4‑byte UTF‑8, allowing storage of emojis, supplementary symbols, and all global scripts without data loss. * **Future‑proof:** Modern applications and standards have converged on UTF‑8; using `utf8mb4` avoids migration challenges later. * **Performance trade‑off:** While slightly more storage might be used compared to `latin1`, the universality of `utf8mb4` outweighs the cost for most deployments. * **`database_collation`** (string): * **Default:** `"utf8mb4_unicode_ci"` * **Reasoning:** * **Accurate sorting & comparison:** This collation uses full Unicode algorithm rules, ensuring linguistically correct comparisons across many languages. * **Case‑insensitive (`ci`):** Most web apps expect case‑insensitive matching for usernames, emails, and search queries, improving usability. * **Neutral choice:** Unlike language‑specific collations, `unicode_ci` works robustly in multilingual contexts without bias. > **Tip:** If you have a legacy application requiring a different charset or collation (e.g., for backward compatibility with existing data), simply override `database_encoding` and `database_collation` in your playbook-level variables. ## Overriding default variables To customize any of these values without editing role defaults: 1. Create or update a playbook-level vars file (e.g. `group_vars/all/docker-mariadb.yml`). 2. Set the desired values, for example: ```yaml database_encoding: "latin1" database_collation: "latin1_swedish_ci" ``` 3. Run your playbook—Ansible’s variable precedence ensures your overrides take effect.