Fix: Remove .select() from delete operations

This commit is contained in:
gpt-engineer-app[bot]
2025-11-04 16:42:23 +00:00
parent c904fe10a1
commit 06c004d5fe
2 changed files with 53 additions and 5 deletions

View File

@@ -148,17 +148,23 @@ export class TestDataTracker {
for (const table of tables) {
try {
const { error, data } = await supabase
// First count how many will be deleted
const { count: countToDelete } = await supabase
.from(table as any)
.select('*', { count: 'exact', head: true })
.eq('is_test_data', true);
// Then delete without selecting (avoids needing SELECT permission on deleted rows)
const { error } = await supabase
.from(table as any)
.delete()
.eq('is_test_data', true)
.select('id');
.eq('is_test_data', true);
if (error) {
logger.warn('Failed to bulk delete test data', { table, error });
totalErrors++;
} else if (data) {
totalDeleted += data.length;
} else if (countToDelete) {
totalDeleted += countToDelete;
}
} catch (err) {
logger.warn('Exception bulk deleting test data', { table, error: err });

View File

@@ -0,0 +1,42 @@
-- Allow moderators to delete test data from version tables
-- This enables test data cleanup operations to work properly
-- Park versions
CREATE POLICY "Moderators can delete test park versions"
ON park_versions
FOR DELETE
TO authenticated
USING (
is_test_data = true
AND is_moderator(auth.uid())
);
-- Ride versions
CREATE POLICY "Moderators can delete test ride versions"
ON ride_versions
FOR DELETE
TO authenticated
USING (
is_test_data = true
AND is_moderator(auth.uid())
);
-- Company versions
CREATE POLICY "Moderators can delete test company versions"
ON company_versions
FOR DELETE
TO authenticated
USING (
is_test_data = true
AND is_moderator(auth.uid())
);
-- Ride model versions
CREATE POLICY "Moderators can delete test ride model versions"
ON ride_model_versions
FOR DELETE
TO authenticated
USING (
is_test_data = true
AND is_moderator(auth.uid())
);