Merge branch 'master' of bitbucket.org:jamkazam/jam-db
This commit is contained in:
commit
034fee5d47
6
manifest
6
manifest
|
|
@ -1,14 +1,12 @@
|
|||
sessions.sql
|
||||
users.sql
|
||||
sessions_api_v1.sql
|
||||
users_v1.sql
|
||||
p2p.sql
|
||||
collapse_participants.sql
|
||||
genre_session.sql
|
||||
invitations.sql
|
||||
users_v2.sql
|
||||
instruments.sql
|
||||
users_v3.sql
|
||||
musicians_instruments.sql
|
||||
musician_access.sql
|
||||
tracks.sql
|
||||
followers.sql
|
||||
locations.sql
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
CREATE TABLE users_followers (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
user_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
follower_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
ALTER TABLE users_followers ADD CONSTRAINT user_follower_uniqkey UNIQUE (user_id, follower_id);
|
||||
|
||||
CREATE TABLE bands_followers (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
band_id VARCHAR(64) NOT NULL REFERENCES bands(id) ON DELETE CASCADE,
|
||||
follower_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
ALTER TABLE bands_followers ADD CONSTRAINT band_follower_uniqkey UNIQUE (band_id, follower_id);
|
||||
|
|
@ -1,11 +1,7 @@
|
|||
-- locations
|
||||
CREATE TABLE musicians_instruments (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
musician_id VARCHAR(64) REFERENCES musicians(id) ON DELETE CASCADE,
|
||||
instrument_id VARCHAR(64) REFERENCES instruments(id) ON DELETE CASCADE,
|
||||
proficiency_level SMALLINT NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
ALTER TABLE users ADD COLUMN city VARCHAR(100) NOT NULL DEFAULT 'City';
|
||||
ALTER TABLE users ADD COLUMN state VARCHAR(2);
|
||||
ALTER TABLE users ADD COLUMN country VARCHAR(100);
|
||||
|
||||
ALTER TABLE musicians_instruments ADD CONSTRAINT musician_instrument_uniqkey UNIQUE (musician_id, instrument_id);
|
||||
ALTER TABLE bands ADD COLUMN city VARCHAR(100) NOT NULL DEFAULT 'City';
|
||||
ALTER TABLE bands ADD COLUMN state VARCHAR(2);
|
||||
ALTER TABLE bands ADD COLUMN country VARCHAR(100);
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
ALTER TABLE musicians_instruments ALTER COLUMN user_id SET NOT NULL;
|
||||
ALTER TABLE musicians_instruments ALTER COLUMN instrument_id SET NOT NULL;
|
||||
ALTER TABLE musicians_instruments ADD COLUMN priority SMALLINT NOT NULL DEFAULT 1;
|
||||
45
up/users.sql
45
up/users.sql
|
|
@ -17,11 +17,24 @@ CREATE TABLE friendships (
|
|||
|
||||
ALTER TABLE friendships ADD CONSTRAINT user_friend_uniqkey UNIQUE (user_id, friend_id);
|
||||
|
||||
-- friend requests
|
||||
CREATE TABLE friend_requests (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
|
||||
friend_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
|
||||
accepted BOOLEAN,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
ALTER TABLE friend_requests ADD CONSTRAINT user_friend_request_uniqkey UNIQUE (user_id, friend_id);
|
||||
|
||||
-- bands
|
||||
CREATE TABLE bands (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
name VARCHAR(1024) NOT NULL,
|
||||
-- add more fields later
|
||||
website VARCHAR(4000) NULL,
|
||||
biography VARCHAR(4000) NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
|
@ -37,33 +50,25 @@ CREATE TABLE genres (
|
|||
-- band -> genre mapping
|
||||
CREATE TABLE bands_genres (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
band_id VARCHAR(64) REFERENCES bands(id) ON DELETE CASCADE,
|
||||
genre_id VARCHAR(64) REFERENCES genres(id) ON DELETE CASCADE,
|
||||
band_id VARCHAR(64) NOT NULL REFERENCES bands(id) ON DELETE CASCADE,
|
||||
genre_id VARCHAR(64) NOT NULL REFERENCES genres(id) ON DELETE CASCADE,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
ALTER TABLE bands_genres ADD CONSTRAINT band_genre_uniqkey UNIQUE (band_id, genre_id);
|
||||
|
||||
-- musicians
|
||||
CREATE TABLE musicians (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- musician -> band mapping
|
||||
CREATE TABLE bands_musicians (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
band_id VARCHAR(64) REFERENCES bands(id) ON DELETE CASCADE,
|
||||
musician_id VARCHAR(64) REFERENCES musicians(id) ON DELETE CASCADE,
|
||||
is_admin BOOLEAN NOT NULL DEFAULT false,
|
||||
band_id VARCHAR(64) NOT NULL REFERENCES bands(id) ON DELETE CASCADE,
|
||||
user_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
admin BOOLEAN NOT NULL DEFAULT false,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
ALTER TABLE bands_musicians ADD CONSTRAINT band_musician_uniqkey UNIQUE (band_id, musician_id);
|
||||
ALTER TABLE bands_musicians ADD CONSTRAINT band_musician_uniqkey UNIQUE (band_id, user_id);
|
||||
|
||||
-- instruments
|
||||
CREATE TABLE instruments (
|
||||
|
|
@ -76,11 +81,15 @@ CREATE TABLE instruments (
|
|||
-- musician -> instrument mapping
|
||||
CREATE TABLE musicians_instruments (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
musician_id VARCHAR(64) REFERENCES musicians(id) ON DELETE CASCADE,
|
||||
instrument_id VARCHAR(64) REFERENCES instruments(id) ON DELETE CASCADE,
|
||||
user_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
instrument_id VARCHAR(64) NOT NULL REFERENCES instruments(id) ON DELETE CASCADE,
|
||||
proficiency_level SMALLINT NOT NULL,
|
||||
priority SMALLINT NOT NULL DEFAULT 1,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
ALTER TABLE musicians_instruments ADD CONSTRAINT musician_instrument_uniqkey UNIQUE (musician_id, instrument_id);
|
||||
ALTER TABLE musicians_instruments ADD CONSTRAINT musician_instrument_uniqkey UNIQUE (user_id, instrument_id);
|
||||
|
||||
-- add musician flag to users table
|
||||
ALTER TABLE users ADD COLUMN musician BOOLEAN NOT NULL DEFAULT false;
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
-- friend requests
|
||||
CREATE TABLE friend_requests (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
|
||||
friend_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
|
||||
accepted BOOLEAN,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
ALTER TABLE friend_requests ADD CONSTRAINT user_friend_request_uniqkey UNIQUE (user_id, friend_id);
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
DROP TABLE bands_musicians;
|
||||
DROP TABLE musicians_instruments;
|
||||
DROP TABLE musicians;
|
||||
|
||||
ALTER TABLE users ADD COLUMN musician BOOLEAN NOT NULL DEFAULT false;
|
||||
ALTER TABLE bands ADD COLUMN website VARCHAR(4000) NULL;
|
||||
ALTER TABLE bands ADD COLUMN biography VARCHAR(4000) NOT NULL;
|
||||
|
||||
-- musician -> band mapping
|
||||
CREATE TABLE bands_users (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
band_id VARCHAR(64) REFERENCES bands(id) ON DELETE CASCADE,
|
||||
user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
|
||||
is_admin BOOLEAN NOT NULL DEFAULT false,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
ALTER TABLE bands_users ADD CONSTRAINT band_user_uniqkey UNIQUE (band_id, user_id);
|
||||
|
||||
-- musician -> instrument mapping
|
||||
CREATE TABLE users_instruments (
|
||||
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
|
||||
instrument_id VARCHAR(64) REFERENCES instruments(id) ON DELETE CASCADE,
|
||||
proficiency_level SMALLINT NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
ALTER TABLE users_instruments ADD CONSTRAINT user_instrument_uniqkey UNIQUE (user_id, instrument_id);
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
ALTER TABLE users_instruments RENAME TO musicians_instruments;
|
||||
ALTER TABLE bands_users RENAME TO bands_musicians;
|
||||
|
||||
ALTER TABLE bands_musicians rename column is_admin to admin;
|
||||
Loading…
Reference in New Issue