Feat: Add migrate to v2 button to admin UI

This commit is contained in:
2025-10-03 12:40:48 -07:00
parent 1589b73b28
commit c942c9612e

View File

@@ -16,9 +16,10 @@
<input id="adminPass" type="password" class="bg-gray-800 border border-gray-600 rounded w-full px-3 py-2 focus:ring-blue-500 focus:border-blue-500"> <input id="adminPass" type="password" class="bg-gray-800 border border-gray-600 rounded w-full px-3 py-2 focus:ring-blue-500 focus:border-blue-500">
</div> </div>
<div class="flex gap-4"> <div class="flex flex-wrap gap-4">
<button id="getSchema" class="bg-blue-600 hover:bg-blue-700 px-4 py-2 rounded">Get Schema</button> <button id="getSchema" class="bg-blue-600 hover:bg-blue-700 px-4 py-2 rounded">Get Schema</button>
<button id="createSchema" class="bg-green-600 hover:bg-green-700 px-4 py-2 rounded">Create/Verify Schema</button> <button id="createSchema" class="bg-green-600 hover:bg-green-700 px-4 py-2 rounded">Create/Verify Schema</button>
<button id="migrateV2" class="bg-purple-600 hover:bg-purple-700 px-4 py-2 rounded">Migrate to V2</button>
<button id="deleteSchema" class="bg-red-600 hover:bg-red-700 px-4 py-2 rounded">Delete Schema</button> <button id="deleteSchema" class="bg-red-600 hover:bg-red-700 px-4 py-2 rounded">Delete Schema</button>
</div> </div>
@@ -59,7 +60,7 @@ const exec = async (action, payload = {}) => {
}); });
const data = await res.json(); const data = await res.json();
out.textContent = JSON.stringify(data, null, 2); out.textContent = JSON.stringify(data, null, 2);
if (!res.ok) throw new Error(`HTTP ${res.status}: ${data.error?.message || data.error}`); if (!res.ok) throw new Error(`HTTP ${res.status}: ${data.error?.message || data.error || data.message}`);
} catch (e) { } catch (e) {
out.textContent = `Error: ${e.message}`; out.textContent = `Error: ${e.message}`;
} }
@@ -67,6 +68,7 @@ const exec = async (action, payload = {}) => {
el('getSchema').addEventListener('click', () => exec('get')); el('getSchema').addEventListener('click', () => exec('get'));
el('createSchema').addEventListener('click', () => exec('create')); el('createSchema').addEventListener('click', () => exec('create'));
el('migrateV2').addEventListener('click', () => exec('migrate_v2'));
el('setRole').addEventListener('click', () => user.value && exec('set_role', { username: user.value, role: role.value })); el('setRole').addEventListener('click', () => user.value && exec('set_role', { username: user.value, role: role.value }));
el('deleteSchema').addEventListener('click', () => { el('deleteSchema').addEventListener('click', () => {
if (confirm('DELETE ALL TABLES? This is irreversible.')) exec('delete'); if (confirm('DELETE ALL TABLES? This is irreversible.')) exec('delete');