UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

94 lines (93 loc) 2.94 kB
import { merge } from 'lodash-es'; export async function up(knex) { await knex('directus_collections').delete().where('collection', 'like', 'directus_%'); } export async function down(knex) { const defaults = { collection: null, hidden: false, singleton: false, icon: null, note: null, translations: null, display_template: null, }; const systemCollections = [ { collection: 'directus_activity', note: 'Accountability logs for all events', }, { collection: 'directus_collections', icon: 'list_alt', note: 'Additional collection configuration and metadata', }, { collection: 'directus_fields', icon: 'input', note: 'Additional field configuration and metadata', }, { collection: 'directus_files', icon: 'folder', note: 'Metadata for all managed file assets', }, { collection: 'directus_folders', note: 'Provides virtual directories for files', }, { collection: 'directus_permissions', icon: 'admin_panel_settings', note: 'Access permissions for each role', }, { collection: 'directus_presets', icon: 'bookmark_border', note: 'Presets for collection defaults and bookmarks', }, { collection: 'directus_relations', icon: 'merge_type', note: 'Relationship configuration and metadata', }, { collection: 'directus_revisions', note: 'Data snapshots for all activity', }, { collection: 'directus_roles', icon: 'supervised_user_circle', note: 'Permission groups for system users', }, { collection: 'directus_sessions', note: 'User session information', }, { collection: 'directus_settings', singleton: true, note: 'Project configuration options', }, { collection: 'directus_users', archive_field: 'status', archive_value: 'archived', unarchive_value: 'draft', icon: 'people_alt', note: 'System users for the platform', }, { collection: 'directus_webhooks', note: 'Configuration for event-based HTTP requests', }, ].map((row) => { for (const [key, value] of Object.entries(row)) { if (value !== null && (typeof value === 'object' || Array.isArray(value))) { row[key] = JSON.stringify(value); } } return merge({}, defaults, row); }); await knex.insert(systemCollections).into('directus_collections'); }