|
| 1 | +DO $$ |
| 2 | + BEGIN |
| 3 | + BEGIN |
| 4 | + DROP VIEW cd_v_join_requests; |
| 5 | + DROP VIEW cd_user_profile; |
| 6 | + END; |
| 7 | + BEGIN |
| 8 | + ALTER TABLE cd_profiles DROP COLUMN countryname; |
| 9 | + ALTER TABLE cd_profiles DROP COLUMN countrynumber; |
| 10 | + ALTER TABLE cd_profiles DROP COLUMN county; |
| 11 | + ALTER TABLE cd_profiles DROP COLUMN continent; |
| 12 | + ALTER TABLE cd_profiles DROP COLUMN place; |
| 13 | + ALTER TABLE cd_profiles DROP COLUMN place_name; |
| 14 | + ALTER TABLE cd_profiles DROP COLUMN address; |
| 15 | + ALTER TABLE cd_profiles DROP COLUMN alpha2; |
| 16 | + ALTER TABLE cd_profiles DROP COLUMN alpha3; |
| 17 | + ALTER TABLE cd_profiles DROP COLUMN state; |
| 18 | + ALTER TABLE cd_profiles DROP COLUMN admin1_code; |
| 19 | + ALTER TABLE cd_profiles DROP COLUMN admin2_code; |
| 20 | + ALTER TABLE cd_profiles DROP COLUMN admin3_code; |
| 21 | + ALTER TABLE cd_profiles DROP COLUMN admin4_code; |
| 22 | + ALTER TABLE cd_profiles DROP COLUMN admin1_name; |
| 23 | + ALTER TABLE cd_profiles DROP COLUMN admin2_name; |
| 24 | + ALTER TABLE cd_profiles DROP COLUMN admin3_name; |
| 25 | + ALTER TABLE cd_profiles DROP COLUMN admin4_name; |
| 26 | + END; |
| 27 | + BEGIN |
| 28 | + CREATE OR REPLACE VIEW cd_user_profile AS SELECT |
| 29 | + cd_profiles.id AS profile_id, |
| 30 | + cd_profiles.name AS profile_name, |
| 31 | + cd_profiles.user_id, |
| 32 | + cd_profiles.alias, |
| 33 | + cd_profiles.dob, |
| 34 | + cd_profiles.country, |
| 35 | + cd_profiles.private, |
| 36 | + cd_profiles.gender, |
| 37 | + cd_profiles.last_edited, |
| 38 | + cd_profiles.email AS profile_email, |
| 39 | + cd_profiles.phone AS profile_phone, |
| 40 | + cd_profiles.parents, |
| 41 | + cd_profiles.children, |
| 42 | + cd_profiles.linkedin, |
| 43 | + cd_profiles.twitter, |
| 44 | + cd_profiles.languages_spoken, |
| 45 | + cd_profiles.programming_languages, |
| 46 | + cd_profiles.notes, |
| 47 | + cd_profiles.projects, |
| 48 | + cd_profiles.badges, |
| 49 | + cd_profiles.country->'countryName' as countryname, |
| 50 | + cd_profiles.country->'countryNumber' as countrynumber, |
| 51 | + cd_profiles.country->'continent' as continent, |
| 52 | + cd_profiles.country->'alpha2' as alpha2, |
| 53 | + cd_profiles.country->'alpha3' as alpha3, |
| 54 | + cd_profiles.user_type, |
| 55 | + cd_profiles.optional_hidden_fields, |
| 56 | + cd_profiles.avatar, |
| 57 | + cd_profiles.required_fields_complete, |
| 58 | + cd_profiles.ninja_invites, |
| 59 | + cd_profiles.parent_invites, |
| 60 | + sys_user.id, |
| 61 | + sys_user.nick, |
| 62 | + sys_user.email, |
| 63 | + sys_user.name, |
| 64 | + sys_user.username, |
| 65 | + sys_user.activated, |
| 66 | + sys_user.level, |
| 67 | + sys_user.mysql_user_id, |
| 68 | + sys_user.first_name, |
| 69 | + sys_user.last_name, |
| 70 | + sys_user.roles, |
| 71 | + sys_user.active, |
| 72 | + sys_user.phone, |
| 73 | + sys_user.mailing_list, |
| 74 | + sys_user.terms_conditions_accepted, |
| 75 | + sys_user.when, |
| 76 | + sys_user.confirmed, |
| 77 | + sys_user.confirmcode, |
| 78 | + sys_user.salt, |
| 79 | + sys_user.pass, |
| 80 | + sys_user.admin, |
| 81 | + sys_user.modified, |
| 82 | + sys_user.accounts, |
| 83 | + sys_user.locale, |
| 84 | + sys_user.banned, |
| 85 | + sys_user.ban_reason, |
| 86 | + sys_user.init_user_type, |
| 87 | + sys_user.join_requests, |
| 88 | + sys_user.last_login |
| 89 | + FROM sys_user JOIN cd_profiles ON sys_user.id = cd_profiles.user_id; |
| 90 | + END; |
| 91 | + BEGIN |
| 92 | + -- By making it depending on cd_profiles table, we avoid cross-dep w/ cd_user_profile |
| 93 | + -- The 2 DROP VIEW is a consequence of this dependency |
| 94 | + CREATE OR REPLACE VIEW cd_v_join_requests AS |
| 95 | + (SELECT join_request->>'id' AS id, |
| 96 | + id as user_id, |
| 97 | + join_request->>'dojoId' AS dojo_id, |
| 98 | + join_request->>'userType' AS user_type, |
| 99 | + join_request->>'timestamp' AS timestamp |
| 100 | + FROM (select unnest(join_requests) AS join_request, id FROM sys_user) x); |
| 101 | + END; |
| 102 | + END; |
| 103 | +$$ |
0 commit comments