# Custom Migrations

Directus allows adding custom migration files that run whenever the directus database migrate:* commands are executed. All migrations must reside in the extensions/migrations folder.

# File Name

The file name follows the following structure:

[identifier]-[name].js

for example:

20201202A-my-custom-migration.js

# Structure

Migrations have to export an up and a down function. These functions get a Knex (opens new window) instance that can be used to do virtually whatever.

module.exports = {
	async up(knex) {
		await knex.schema.createTable('test', (table) => {
			table.increments();
			table.string('rijk');
		});
	},

	async down(knex) {
		await knex.schema.dropTable('test');
	},
};

Danger

Seeing that these migrations are a bit of a free-for-all, you can really harm your database. Please make sure you know what you're doing and backup your database before adding these migrations.