sojorn/migrations/directus/fix_directus_permissions.sql
Patrick Britton 0bb1dd4055 feat: organize SQL scripts into structured migration folders
- Create organized migration folder structure:
  - database/ - Core schema changes and migrations
  - tests/ - Test scripts and verification queries
  - directus/ - Directus CMS configuration scripts
  - fixes/ - Database fixes and patches
  - archive/ - Historical and deprecated scripts

- Move 60+ SQL files from root to appropriate folders
- Add comprehensive README with usage guidelines
- Consolidate old migrations_archive into new archive folder
- Maintain clear separation of concerns for different script types

Benefits:
- Cleaner project root directory
- Easier to find specific types of SQL scripts
- Better organization for maintenance and development
- Clear documentation for migration procedures
- Proper separation of production vs development scripts
2026-02-05 09:13:47 -06:00

40 lines
1.4 KiB
SQL

-- Check table structures and add permissions
SELECT 'directus_roles structure:' as info;
\d directus_roles;
SELECT 'directus_permissions structure:' as info;
\d directus_permissions;
-- Get the admin role ID
SELECT 'Finding admin role:' as info;
SELECT id, name FROM directus_roles WHERE name = 'Administrator' OR name = 'admin';
-- Add permissions for admin role to access moderation collections
INSERT INTO directus_permissions (role, permission, collection, action)
SELECT
(SELECT id FROM directus_roles WHERE name = 'Administrator' LIMIT 1),
'full',
'moderation_flags',
'*'
WHERE NOT EXISTS (
SELECT 1 FROM directus_permissions
WHERE collection = 'moderation_flags'
AND role = (SELECT id FROM directus_roles WHERE name = 'Administrator' LIMIT 1)
);
INSERT INTO directus_permissions (role, permission, collection, action)
SELECT
(SELECT id FROM directus_roles WHERE name = 'Administrator' LIMIT 1),
'full',
'user_status_history',
'*'
WHERE NOT EXISTS (
SELECT 1 FROM directus_permissions
WHERE collection = 'user_status_history'
AND role = (SELECT id FROM directus_roles WHERE name = 'Administrator' LIMIT 1)
);
SELECT 'Permissions added for moderation collections:' as info;
SELECT role, permission, collection, action FROM directus_permissions
WHERE collection IN ('moderation_flags', 'user_status_history');