From b3db03ff66dd086f9335b317c93682e63eedb05d Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Sat, 3 Nov 2012 23:56:08 -0400 Subject: [PATCH 1/4] cleaned up scripts --- manifest | 4 ---- up/locations.sql | 11 ---------- up/musicians_instruments.sql | 3 --- up/users.sql | 39 ++++++++++++++++++++++-------------- up/users_v1.sql | 11 ---------- up/users_v2.sql | 31 ---------------------------- up/users_v3.sql | 4 ---- 7 files changed, 24 insertions(+), 79 deletions(-) delete mode 100644 up/locations.sql delete mode 100644 up/musicians_instruments.sql delete mode 100644 up/users_v1.sql delete mode 100644 up/users_v2.sql delete mode 100644 up/users_v3.sql diff --git a/manifest b/manifest index 7c97b4cfb..abaf93b9b 100644 --- a/manifest +++ b/manifest @@ -1,13 +1,9 @@ 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 diff --git a/up/locations.sql b/up/locations.sql deleted file mode 100644 index cb69807a6..000000000 --- a/up/locations.sql +++ /dev/null @@ -1,11 +0,0 @@ --- 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 musicians_instruments ADD CONSTRAINT musician_instrument_uniqkey UNIQUE (musician_id, instrument_id); diff --git a/up/musicians_instruments.sql b/up/musicians_instruments.sql deleted file mode 100644 index 37a6f6a24..000000000 --- a/up/musicians_instruments.sql +++ /dev/null @@ -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; diff --git a/up/users.sql b/up/users.sql index a9dcb9a55..69c2bd369 100644 --- a/up/users.sql +++ b/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 ); @@ -45,25 +58,17 @@ CREATE TABLE bands_genres ( 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, + user_id VARCHAR(64) 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; diff --git a/up/users_v1.sql b/up/users_v1.sql deleted file mode 100644 index e8c18c2bb..000000000 --- a/up/users_v1.sql +++ /dev/null @@ -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); \ No newline at end of file diff --git a/up/users_v2.sql b/up/users_v2.sql deleted file mode 100644 index 805227976..000000000 --- a/up/users_v2.sql +++ /dev/null @@ -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); diff --git a/up/users_v3.sql b/up/users_v3.sql deleted file mode 100644 index b4f7d9e41..000000000 --- a/up/users_v3.sql +++ /dev/null @@ -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; \ No newline at end of file From c6a3e7957c64d4d0dd0ab63d0433b4a290382b0c Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Sun, 4 Nov 2012 08:32:14 -0500 Subject: [PATCH 2/4] added users_followers table --- manifest | 1 + up/followers.sql | 19 +++++++++++++++++++ up/users.sql | 8 ++++---- 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 up/followers.sql diff --git a/manifest b/manifest index 87e657da6..3b1bfcc95 100644 --- a/manifest +++ b/manifest @@ -8,3 +8,4 @@ invitations.sql instruments.sql musician_access.sql tracks.sql +followers.sql \ No newline at end of file diff --git a/up/followers.sql b/up/followers.sql new file mode 100644 index 000000000..367201b8a --- /dev/null +++ b/up/followers.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); \ No newline at end of file diff --git a/up/users.sql b/up/users.sql index 69c2bd369..0af957a9c 100644 --- a/up/users.sql +++ b/up/users.sql @@ -50,8 +50,8 @@ 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 ); @@ -61,8 +61,8 @@ ALTER TABLE bands_genres ADD CONSTRAINT band_genre_uniqkey UNIQUE (band_id, genr -- 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, - user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE, + 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 From 4822bf161fd7f03ae8cbfae852e198413f5208fe Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Mon, 5 Nov 2012 21:54:26 -0500 Subject: [PATCH 3/4] add location fields --- manifest | 3 ++- up/locations.sql | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 up/locations.sql diff --git a/manifest b/manifest index 3b1bfcc95..b6acab26a 100644 --- a/manifest +++ b/manifest @@ -8,4 +8,5 @@ invitations.sql instruments.sql musician_access.sql tracks.sql -followers.sql \ No newline at end of file +followers.sql +locations.sql \ No newline at end of file diff --git a/up/locations.sql b/up/locations.sql new file mode 100644 index 000000000..ac961480a --- /dev/null +++ b/up/locations.sql @@ -0,0 +1,7 @@ +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 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); \ No newline at end of file From 0914d6ff22cf32083533802e2ed98e9edc0bb805 Mon Sep 17 00:00:00 2001 From: Jonathon Wilson Date: Thu, 8 Nov 2012 09:57:28 -0700 Subject: [PATCH 4/4] Up pg_migrate version to 0.1.6 --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 1cf065ceb..3a00ca934 100644 --- a/Gemfile +++ b/Gemfile @@ -8,4 +8,4 @@ workspace = ENV["WORKSPACE"] || "~/workspace" # $ cd [workspace] # $ git clone https://github.com/sethcall/pg_migrate_ruby -gem 'pg_migrate', '0.1.5' # :path=> "#{workspace}/pg_migrate_ruby" +gem 'pg_migrate', '0.1.6' # :path=> "#{workspace}/pg_migrate_ruby" diff --git a/Gemfile.lock b/Gemfile.lock index e82ee1e90..7f2d466c8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -6,7 +6,7 @@ GEM little-plugger (>= 1.1.3) pg (0.14.0) pg (0.14.0-x86-mingw32) - pg_migrate (0.1.5) + pg_migrate (0.1.6) logging (= 1.7.2) pg (= 0.14.0) thor (= 0.15.4) @@ -17,4 +17,4 @@ PLATFORMS x86-mingw32 DEPENDENCIES - pg_migrate (= 0.1.5) + pg_migrate (= 0.1.6)