Let the same choice open notes and drafts
The picker in the bell now governs both lists, so note_subscriptions is renamed to colleague_subscriptions -- a name that only mentions notes would mislead the next reader. Reading and writing a draft now reach differently far. hire_drafts_owner (for all) is split into four policies: select lets in your own drafts and those of the people you added, while insert/update/delete stay with the owner. A draft is unfinished work with no lock and no history; two people writing into the same row would overwrite each other silently. That split forces a change in the actions: a policy does not reject a write, it lets it hit no rows. saveHireDraft and deleteHireDraft now read the row count instead of reporting success over a row that never changed. The card shows a foreign draft with its author and without Fortsetzen or Loeschen -- offering a button that reliably ends in a database error is a promise without cover. check-schema-types.mjs learns `alter table ... rename to`; without it the drift check reports one rename as two errors. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -114,6 +114,19 @@ function parseMigrations() {
|
||||
}
|
||||
const anweisung = sql.slice(kopf.index + kopf[0].length, ende);
|
||||
|
||||
// Eine umbenannte Tabelle behält ihre Spalten und wechselt den Namen.
|
||||
// Ohne diesen Fall stünde der alte Name weiter im Modell aus den
|
||||
// Migrationen, und der Abgleich meldete zwei Fehler für eine Änderung:
|
||||
// die alte Tabelle fehle in lib/types.ts, die neue kenne das Schema
|
||||
// nicht. `rename constraint` und `rename column` sind davon nicht
|
||||
// betroffen — nur das unmittelbare `rename to`.
|
||||
const umbenannt = anweisung.match(/^\s*rename to (\w+)/i);
|
||||
if (umbenannt) {
|
||||
tables.delete(kopf[1].toLowerCase());
|
||||
tables.set(umbenannt[1].toLowerCase(), tabelle);
|
||||
continue;
|
||||
}
|
||||
|
||||
for (const m of anweisung.matchAll(/\badd column (?:if not exists )?(\w+)/gi)) {
|
||||
tabelle.add(m[1].toLowerCase());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user