Settings: Database section with connection params, test, and replay button
New « BASE DE DONNÉES (XAMPP / MySQL) » section in Paramètres covering: - Host / Port / User / Password / Database — defaults match a fresh XAMPP install (localhost:3306, root, empty password, "proserve"). Password is DPAPI-encrypted in config.json (same scheme as the license key). - « Tester » button — opens a fresh MySqlConnection and runs SELECT 1. Shows ✓ OK or the connection error inline. - « Appliquer automatiquement les migrations à l'install » checkbox — opt-in for the post-install migration step. Default true. - « 🔁 Rejouer les migrations » button — manually re-runs ApplyMigrationsAsync on the latest installed version. Useful when the post-install run failed (XAMPP was off) or after a dev added a new SQL file. Live status « 3/5 : 0042_add_index.sql » + final « ✓ N applied, M skipped » or « ✗ failure ». - Hint paragraph below explaining the _migrations/ convention. SettingsViewModel - Pulls IDatabaseMigrationService and IInstallationRegistry via DI. - Save() now also persists the DB block, encrypting the password before write. - TestDbAsync temporarily swaps the in-memory config so the service sees the values being typed (without persisting until Save). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -138,6 +138,27 @@ public static class Strings
|
||||
public static string SettingsInstallation => T("INSTALLATION", "INSTALLATION", "安装", "การติดตั้ง", "التثبيت");
|
||||
public static string SettingsCache => T("CACHE DE TÉLÉCHARGEMENTS", "DOWNLOAD CACHE", "下载缓存", "แคชดาวน์โหลด", "ذاكرة التخزين المؤقت للتنزيلات");
|
||||
public static string SettingsLogs => T("LOGS & APPLICATION", "LOGS & APP", "日志与应用", "บันทึกและแอป", "السجلات والتطبيق");
|
||||
public static string SettingsDatabase => T("BASE DE DONNÉES (XAMPP / MySQL)", "DATABASE (XAMPP / MySQL)", "数据库(XAMPP / MySQL)", "ฐานข้อมูล (XAMPP / MySQL)", "قاعدة البيانات (XAMPP / MySQL)");
|
||||
public static string SettingsDbHost => T("Hôte", "Host", "主机", "โฮสต์", "المضيف");
|
||||
public static string SettingsDbPort => T("Port", "Port", "端口", "พอร์ต", "المنفذ");
|
||||
public static string SettingsDbUser => T("Utilisateur", "User", "用户", "ผู้ใช้", "المستخدم");
|
||||
public static string SettingsDbPassword => T("Mot de passe", "Password", "密码", "รหัสผ่าน", "كلمة المرور");
|
||||
public static string SettingsDbName => T("Nom de la base", "Database name", "数据库名称", "ชื่อฐานข้อมูล", "اسم قاعدة البيانات");
|
||||
public static string SettingsDbAutoMigrate => T(
|
||||
"Appliquer automatiquement les migrations à l'install d'une nouvelle version",
|
||||
"Automatically apply migrations when installing a new version",
|
||||
"安装新版本时自动应用迁移",
|
||||
"ปรับใช้การโยกย้ายโดยอัตโนมัติเมื่อติดตั้งเวอร์ชันใหม่",
|
||||
"تطبيق الترقيات تلقائياً عند تثبيت نسخة جديدة"
|
||||
);
|
||||
public static string SettingsDbReplay => T("🔁 Rejouer les migrations", "🔁 Replay migrations", "🔁 重新执行迁移", "🔁 เรียกใช้การโยกย้ายอีกครั้ง", "🔁 إعادة تشغيل الترقيات");
|
||||
public static string SettingsDbHint => T(
|
||||
"Le launcher applique automatiquement les scripts SQL bundled dans _migrations/ de chaque ZIP PROSERVE. Mot de passe stocké chiffré DPAPI.",
|
||||
"The launcher automatically applies SQL scripts bundled in each PROSERVE ZIP's _migrations/ folder. Password stored DPAPI-encrypted.",
|
||||
"启动器自动应用每个 PROSERVE ZIP 的 _migrations/ 文件夹中捆绑的 SQL 脚本。密码使用 DPAPI 加密存储。",
|
||||
"Launcher จะปรับใช้สคริปต์ SQL ที่บรรจุใน _migrations/ ของ ZIP PROSERVE แต่ละชุดโดยอัตโนมัติ รหัสผ่านถูกเก็บแบบเข้ารหัส DPAPI",
|
||||
"يطبق المُشغِّل تلقائياً نصوص SQL المرفقة في _migrations/ لكل ZIP من PROSERVE. كلمة المرور مُخزَّنة بتشفير DPAPI."
|
||||
);
|
||||
public static string SettingsLanguage => T("LANGUE", "LANGUAGE", "语言", "ภาษา", "اللغة");
|
||||
public static string SettingsLanguageHint => T(
|
||||
"Le launcher redémarrera pour appliquer le changement.",
|
||||
|
||||
Reference in New Issue
Block a user