44 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 4byte UTF8, allowing storage of emojis, supplementary symbols, and all global scripts without data loss.
* **Futureproof:** Modern applications and standards have converged on UTF8; using `utf8mb4` avoids migration challenges later.
* **Performance tradeoff:** 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.
* **Caseinsensitive (`ci`):** Most web apps expect caseinsensitive matching for usernames, emails, and search queries, improving usability.
* **Neutral choice:** Unlike languagespecific 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—Ansibles variable precedence ensures your overrides take effect.