@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
33 lines (32 loc) • 1.79 kB
JavaScript
export async function up(knex) {
await knex.schema.createTable('directus_deployments', (table) => {
table.uuid('id').primary().notNullable();
table.string('provider').notNullable().unique();
table.text('credentials');
table.text('options');
table.timestamp('date_created').defaultTo(knex.fn.now());
table.uuid('user_created').references('id').inTable('directus_users').onDelete('SET NULL');
});
await knex.schema.createTable('directus_deployment_projects', (table) => {
table.uuid('id').primary().notNullable();
table.uuid('deployment').notNullable().references('id').inTable('directus_deployments').onDelete('CASCADE');
table.string('external_id').notNullable();
table.string('name').notNullable();
table.timestamp('date_created').defaultTo(knex.fn.now());
table.uuid('user_created').references('id').inTable('directus_users').onDelete('SET NULL');
table.unique(['deployment', 'external_id']);
});
await knex.schema.createTable('directus_deployment_runs', (table) => {
table.uuid('id').primary().notNullable();
table.uuid('project').notNullable().references('id').inTable('directus_deployment_projects').onDelete('CASCADE');
table.string('external_id').notNullable();
table.string('target').notNullable(); // 'production' or 'preview'
table.timestamp('date_created').defaultTo(knex.fn.now());
table.uuid('user_created').references('id').inTable('directus_users').onDelete('SET NULL');
});
}
export async function down(knex) {
await knex.schema.dropTable('directus_deployment_runs');
await knex.schema.dropTable('directus_deployment_projects');
await knex.schema.dropTable('directus_deployments');
}