@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
38 lines (37 loc) • 1.42 kB
JavaScript
import { useEnv } from '@directus/env';
import { toBoolean } from '@directus/utils';
import { email } from 'zod';
import { SettingsService } from '../../services/settings.js';
import { getSchema } from '../../utils/get-schema.js';
export async function up(knex) {
await knex.schema.alterTable('directus_settings', (table) => {
table.string('project_owner');
table.string('project_usage');
table.string('org_name');
table.boolean('product_updates');
table.string('project_status');
table.dropColumn('accepted_terms');
});
const env = useEnv();
const settingsService = new SettingsService({ schema: await getSchema() });
if (email().safeParse(env['PROJECT_OWNER']).success) {
await settingsService.setOwner({
project_owner: env['PROJECT_OWNER'],
org_name: null,
project_usage: null,
product_updates: false,
});
}
}
export async function down(knex) {
const env = useEnv();
const acceptedTerms = toBoolean(env['ACCEPT_TERMS']);
await knex.schema.alterTable('directus_settings', (table) => {
table.dropColumn('project_owner');
table.dropColumn('project_usage');
table.dropColumn('org_name');
table.dropColumn('product_updates');
table.dropColumn('project_status');
table.boolean('accepted_terms').defaultTo(acceptedTerms);
});
}