Add identifier column to plugins table for cleaner plugin lookup

- Added 'identifier' column (unique) for machine-readable plugin ID
- 'name' now used for display name only
- Updated trial-execution to look up by identifier first, then name
- Added migration script for existing databases
This commit is contained in:
2026-03-21 20:03:33 -04:00
parent e84c794962
commit 4e86546311
7 changed files with 4539 additions and 12 deletions

View File

@@ -0,0 +1,31 @@
import { db } from "~/server/db";
import { sql } from "drizzle-orm";
async function migrate() {
console.log("Adding identifier column to hs_plugin...");
try {
await db.execute(sql`ALTER TABLE hs_plugin ADD COLUMN identifier varchar(100)`);
console.log("✓ Added identifier column");
} catch (e: any) {
console.log("Column may already exist:", e.message);
}
try {
await db.execute(sql`UPDATE hs_plugin SET identifier = name WHERE identifier IS NULL`);
console.log("✓ Copied name to identifier");
} catch (e: any) {
console.log("Error copying:", e.message);
}
try {
await db.execute(sql`ALTER TABLE hs_plugin ADD CONSTRAINT hs_plugin_identifier_unique UNIQUE (identifier)`);
console.log("✓ Added unique constraint");
} catch (e: any) {
console.log("Constraint may already exist:", e.message);
}
console.log("Migration complete!");
}
migrate().catch(console.error);