migrations for the roomtypes (#513)
* migrations for the roomtypes * rename files * updated types * Correct migration numbers and cleanup
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
-- Drop tables if they exist to allow re-running this migration
|
||||
DROP TABLE IF EXISTS room_roomtypes;
|
||||
DROP TABLE IF EXISTS roomtypes;
|
||||
|
||||
-- Create roomtypes table with sequential ids
|
||||
CREATE TABLE roomtypes (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name CHARACTER VARYING,
|
||||
admin_specific BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
CONSTRAINT roomtypes_name_key UNIQUE (name)
|
||||
);
|
||||
|
||||
-- Create room_roomtypes junction table
|
||||
CREATE TABLE room_roomtypes (
|
||||
id SERIAL PRIMARY KEY,
|
||||
room_id INTEGER NOT NULL,
|
||||
roomtype_id INTEGER NOT NULL,
|
||||
|
||||
-- Foreign key constraints with CASCADE DELETE
|
||||
CONSTRAINT fk_room_roomtypes_room
|
||||
FOREIGN KEY (room_id) REFERENCES rooms(id) ON DELETE CASCADE,
|
||||
CONSTRAINT fk_room_roomtypes_roomtype
|
||||
FOREIGN KEY (roomtype_id) REFERENCES roomtypes(id) ON DELETE CASCADE,
|
||||
|
||||
-- Ensure unique combination of room and roomtype (prevent duplicates)
|
||||
UNIQUE(room_id, roomtype_id)
|
||||
);
|
||||
|
||||
-- Create indexes for better query performance
|
||||
CREATE INDEX idx_room_roomtypes_room_id ON room_roomtypes(room_id);
|
||||
CREATE INDEX idx_room_roomtypes_roomtype_id ON room_roomtypes(roomtype_id);
|
||||
|
||||
Reference in New Issue
Block a user