From d1ea702939077676c9e8eb07259aeafbb99e42c9 Mon Sep 17 00:00:00 2001 From: Tom Russell Date: Sat, 29 Sep 2018 18:14:06 +0100 Subject: [PATCH] Add location, date, size, likes to database --- .../004.location-date-size-like.down.sql | 37 +++++++++ migrations/004.location-date-size-like.up.sql | 78 +++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 migrations/004.location-date-size-like.down.sql create mode 100644 migrations/004.location-date-size-like.up.sql diff --git a/migrations/004.location-date-size-like.down.sql b/migrations/004.location-date-size-like.down.sql new file mode 100644 index 00000000..93024736 --- /dev/null +++ b/migrations/004.location-date-size-like.down.sql @@ -0,0 +1,37 @@ +-- Drop location fields + +ALTER TABLE buildings DROP COLUMN IF EXISTS location_name; +ALTER TABLE buildings DROP COLUMN IF EXISTS location_number; +ALTER TABLE buildings DROP COLUMN IF EXISTS location_street; +ALTER TABLE buildings DROP COLUMN IF EXISTS location_line_two; +ALTER TABLE buildings DROP COLUMN IF EXISTS location_town; +ALTER TABLE buildings DROP COLUMN IF EXISTS location_postcode; + +ALTER TABLE buildings DROP COLUMN IF EXISTS location_latitude; +ALTER TABLE buildings DROP COLUMN IF EXISTS location_longitude; + +-- Drop date fields + +ALTER TABLE buildings DROP COLUMN IF EXISTS date_year; +ALTER TABLE buildings DROP COLUMN IF EXISTS date_lower; +ALTER TABLE buildings DROP COLUMN IF EXISTS date_upper; +ALTER TABLE buildings DROP COLUMN IF EXISTS date_source; + +ALTER TABLE buildings DROP COLUMN IF EXISTS facade_year; +ALTER TABLE buildings DROP COLUMN IF EXISTS facade_upper; +ALTER TABLE buildings DROP COLUMN IF EXISTS facade_lower; +ALTER TABLE buildings DROP COLUMN IF EXISTS facade_source; + +-- Drop size fields +ALTER TABLE buildings DROP COLUMN IF EXISTS size_storeys_attic; +ALTER TABLE buildings DROP COLUMN IF EXISTS size_storeys_core; +ALTER TABLE buildings DROP COLUMN IF EXISTS size_storeys_basement; + +ALTER TABLE buildings DROP COLUMN IF EXISTS size_height_apex; +ALTER TABLE buildings DROP COLUMN IF EXISTS size_floor_area_ground; +ALTER TABLE buildings DROP COLUMN IF EXISTS size_floor_area_total; +ALTER TABLE buildings DROP COLUMN IF EXISTS size_width_frontage; + +-- Drop like-me fields +DROP TABLE IF EXISTS building_user_likes; +ALTER TABLE buildings DROP COLUMN IF EXISTS likes_total; diff --git a/migrations/004.location-date-size-like.up.sql b/migrations/004.location-date-size-like.up.sql new file mode 100644 index 00000000..673d8138 --- /dev/null +++ b/migrations/004.location-date-size-like.up.sql @@ -0,0 +1,78 @@ +-- Location fields + +-- Building Name +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS location_name varchar; +ALTER TABLE buildings ADD CONSTRAINT buildings_location_name_len CHECK (length(location_name) < 90); +-- Building Number +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS location_number varchar; +ALTER TABLE buildings ADD CONSTRAINT buildings_location_number_len CHECK (length(location_number) < 10); +-- Street +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS location_street varchar; +ALTER TABLE buildings ADD CONSTRAINT buildings_location_street_len CHECK (length(location_street) < 90); +-- Address line 2 +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS location_line_two varchar; +ALTER TABLE buildings ADD CONSTRAINT buildings_location_line_two_len CHECK (length(location_line_two) < 90); +-- Town +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS location_town varchar; +ALTER TABLE buildings ADD CONSTRAINT buildings_location_town_len CHECK (length(location_town) < 90); +-- Postcode +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS location_postcode varchar; +ALTER TABLE buildings ADD CONSTRAINT buildings_location_postcode_len CHECK (length(location_postcode) < 11); + +-- Explicit coordinates (user-provided; see geometries table for polygons) +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS location_latitude double precision; + +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS location_longitude double precision; + + +-- Building age (main construction, facade) + +-- Year built (best estimate) +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS date_year smallint; +-- Year built (lower estimate) +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS date_lower smallint; +-- Year built (upper estimate) +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS date_upper smallint; +-- Date Source +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS date_source varchar; +ALTER TABLE buildings ADD CONSTRAINT buildings_date_source_len CHECK (length(date_source) < 150); + +-- Facade date +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS facade_year smallint; +-- Facade date (upper) +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS facade_upper smallint; +-- Facade date (lower) +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS facade_lower smallint; +-- Date Source +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS facade_source varchar; +ALTER TABLE buildings ADD CONSTRAINT buildings_facade_source_len CHECK (length(facade_source) < 150); + + +-- Size + +-- Attic storeys +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS size_storeys_attic smallint; +-- Core storeys +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS size_storeys_core smallint; +-- Basement storeys +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS size_storeys_basement smallint; + +-- Height to apex (m) +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS size_height_apex real; +-- Ground floor area (m2) +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS size_floor_area_ground real; +-- Total floor area (m2) +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS size_floor_area_total real; +-- Frontage Width (m) +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS size_width_frontage real; + + +-- Likes + +-- Total likes (denormalised from up-to-one-vote-per-user) +ALTER TABLE buildings ADD COLUMN IF NOT EXISTS likes_total integer; + +CREATE TABLE IF NOT EXISTS building_user_likes ( + building_id integer REFERENCES buildings, + user_id uuid REFERENCES users +);