blakus/apps/blakus-api/migrations/20250315152617_categories.js
Broks Randolfs Gailītis 30db53bd95
Some checks failed
CI / main (push) Failing after 3m46s
Add categories to places
2025-03-15 18:11:28 +02:00

39 lines
1.3 KiB
JavaScript

/**
* @param { import("knex").Knex } knex
* @returns { Promise<void> }
*/
exports.up = function(knex) {
return knex.schema
.createTable('categories', function (table) {
table.uuid('id').primary().defaultTo(knex.raw(`gen_random_uuid()`));
table.string('name').notNullable();
table.timestamps(true, true);
})
.alterTable('places', function(table) {
table.uuid('category_id').references('id').inTable('categories')
})
.createTable('subcategories', function(table) {
table.uuid('id').primary().defaultTo(knex.raw(`gen_random_uuid()`));
table.string('name').notNullable();
table.uuid('category_id').references('id').inTable('categories').onDelete('CASCADE');
table.timestamps(true, true);
})
.createTable('place_subcategories', function(table) {
table.uuid('place_id').references('id').inTable('places').onDelete('CASCADE');
table.uuid('subcategory_id').references('id').inTable('subcategories').onDelete('CASCADE');
})
};
/**
* @param { import("knex").Knex } knex
* @returns { Promise<void> }
*/
exports.down = function(knex) {
knex.schema.alterTable('places', function(table) {
table.dropColumn('category_id');
});
knex.schema.dropTable('categories');
knex.schema.dropTable('subcategories');
knex.schema.dropTable('place_subcategories');
};