mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 11:31:11 -05:00
Fix: Remove .select() from delete operations
This commit is contained in:
@@ -148,17 +148,23 @@ export class TestDataTracker {
|
|||||||
|
|
||||||
for (const table of tables) {
|
for (const table of tables) {
|
||||||
try {
|
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)
|
.from(table as any)
|
||||||
.delete()
|
.delete()
|
||||||
.eq('is_test_data', true)
|
.eq('is_test_data', true);
|
||||||
.select('id');
|
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
logger.warn('Failed to bulk delete test data', { table, error });
|
logger.warn('Failed to bulk delete test data', { table, error });
|
||||||
totalErrors++;
|
totalErrors++;
|
||||||
} else if (data) {
|
} else if (countToDelete) {
|
||||||
totalDeleted += data.length;
|
totalDeleted += countToDelete;
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.warn('Exception bulk deleting test data', { table, error: err });
|
logger.warn('Exception bulk deleting test data', { table, error: err });
|
||||||
|
|||||||
@@ -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())
|
||||||
|
);
|
||||||
Reference in New Issue
Block a user