#41 Updated ERD; added and tested migrations.
This commit is contained in:
parent
888205e069
commit
fc1b17b7a5
doc/specification
resources/migrations
File diff suppressed because it is too large
Load diff
Before (image error) Size: 61 KiB After (image error) Size: 65 KiB |
69
resources/migrations/20170721084900-dwellings.down.sql
Normal file
69
resources/migrations/20170721084900-dwellings.down.sql
Normal file
|
@ -0,0 +1,69 @@
|
|||
--------------------------------------------------------------------------------
|
||||
----
|
||||
---- 20170721084900.up.sql: add dwellings table, to deal with flatted addresses.
|
||||
----
|
||||
---- This program is free software; you can redistribute it and/or
|
||||
---- modify it under the terms of the GNU General Public License
|
||||
---- as published by the Free Software Foundation; either version 2
|
||||
---- of the License, or (at your option) any later version.
|
||||
----
|
||||
---- This program is distributed in the hope that it will be useful,
|
||||
---- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
---- GNU General Public License for more details.
|
||||
----
|
||||
---- You should have received a copy of the GNU General Public License
|
||||
---- along with this program; if not, write to the Free Software
|
||||
---- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
---- USA.
|
||||
----
|
||||
---- Copyright (C) 2017 Simon Brooke for Radical Independence Campaign
|
||||
----
|
||||
--------------------------------------------------------------------------------
|
||||
----
|
||||
---- NOTE
|
||||
---- This file is essentially a Postgres schema dump of a database schema which was
|
||||
---- created with the function initdb! in the file src/clj/youyesyet/db/schema.clj.
|
||||
---- This file has then been mildly massaged to work with Migratus.
|
||||
---- Either this file or src/clj/youyesyet/db/schema.clj is redundant; schema.clj
|
||||
---- represents the older, Korma, way of doing things but does not readily allow
|
||||
---- for migrations; this file represents the newer Migratus/HugSQL way. I'm not
|
||||
---- certain which of these paths I'm going to go down.
|
||||
----
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
alter table canvassers add column address_id integer references addresses(id);
|
||||
--;;
|
||||
alter table electors add column address_id integer references addresses(id);
|
||||
--;;
|
||||
alter table visits add column address_id integer references addresses(id);
|
||||
--;;
|
||||
|
||||
update canvassers set address_id =
|
||||
(select address_id from dwellings where id = canvassers.dwelling_id);
|
||||
--;;
|
||||
|
||||
update electors set address_id =
|
||||
(select address_id from dwellings where id = electors.dwelling_id);
|
||||
--;;
|
||||
|
||||
update visits set address_id =
|
||||
(select address_id from dwellings where id = visits.dwelling_id);
|
||||
--;;
|
||||
|
||||
alter table canvassers alter column address_id set not null;
|
||||
--;;
|
||||
alter table electors alter column address_id set not null;
|
||||
--;;
|
||||
alter table visits alter column address_id set not null;
|
||||
--;;
|
||||
|
||||
alter table canvassers drop column dwelling_id;
|
||||
--;;
|
||||
alter table electors drop column dwelling_id;
|
||||
--;;
|
||||
alter table visits drop column dwelling_id;
|
||||
--;;
|
||||
|
||||
drop table if exists dwellings;
|
||||
--;;
|
87
resources/migrations/20170721084900-dwellings.up.sql
Normal file
87
resources/migrations/20170721084900-dwellings.up.sql
Normal file
|
@ -0,0 +1,87 @@
|
|||
--------------------------------------------------------------------------------
|
||||
----
|
||||
---- 20170721084900.up.sql: add dwellings table, to deal with flatted addresses.
|
||||
----
|
||||
---- This program is free software; you can redistribute it and/or
|
||||
---- modify it under the terms of the GNU General Public License
|
||||
---- as published by the Free Software Foundation; either version 2
|
||||
---- of the License, or (at your option) any later version.
|
||||
----
|
||||
---- This program is distributed in the hope that it will be useful,
|
||||
---- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
---- GNU General Public License for more details.
|
||||
----
|
||||
---- You should have received a copy of the GNU General Public License
|
||||
---- along with this program; if not, write to the Free Software
|
||||
---- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
---- USA.
|
||||
----
|
||||
---- Copyright (C) 2017 Simon Brooke for Radical Independence Campaign
|
||||
----
|
||||
--------------------------------------------------------------------------------
|
||||
----
|
||||
---- NOTE
|
||||
---- This file is essentially a Postgres schema dump of a database schema which was
|
||||
---- created with the function initdb! in the file src/clj/youyesyet/db/schema.clj.
|
||||
---- This file has then been mildly massaged to work with Migratus.
|
||||
---- Either this file or src/clj/youyesyet/db/schema.clj is redundant; schema.clj
|
||||
---- represents the older, Korma, way of doing things but does not readily allow
|
||||
---- for migrations; this file represents the newer Migratus/HugSQL way. I'm not
|
||||
---- certain which of these paths I'm going to go down.
|
||||
----
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
CREATE TABLE IF NOT EXISTS dwellings (
|
||||
id serial NOT NULL primary key,
|
||||
address_id integer NOT NULL,
|
||||
sub_address varchar(16)
|
||||
);
|
||||
--;;
|
||||
|
||||
ALTER TABLE public.dwellings OWNER TO youyesyet;
|
||||
--;;
|
||||
|
||||
INSERT INTO dwellings (address_id, sub_address)
|
||||
SELECT DISTINCT id, '' FROM addresses;
|
||||
--;;
|
||||
|
||||
alter table canvassers add column dwelling_id integer references dwellings(id);
|
||||
--;;
|
||||
alter table electors add column dwelling_id integer references dwellings(id);
|
||||
--;;
|
||||
alter table visits add column dwelling_id integer references dwellings(id);
|
||||
--;;
|
||||
|
||||
update canvassers set dwelling_id =
|
||||
(select id from dwellings where address_id = canvassers.address_id);
|
||||
--;;
|
||||
|
||||
update electors set dwelling_id =
|
||||
(select id from dwellings where address_id = electors.address_id);
|
||||
--;;
|
||||
|
||||
update visits set dwelling_id =
|
||||
(select id from dwellings where address_id = visits.address_id);
|
||||
--;;
|
||||
|
||||
alter table canvassers alter column dwelling_id set not null;
|
||||
--;;
|
||||
alter table electors alter column dwelling_id set not null;
|
||||
--;;
|
||||
alter table visits alter column dwelling_id set not null;
|
||||
--;;
|
||||
|
||||
alter table canvassers drop constraint canvassers_address_id_fkey;
|
||||
--;;
|
||||
alter table electors drop constraint electors_address_id_fkey;
|
||||
--;;
|
||||
alter table visits drop constraint visits_address_id_fkey;
|
||||
--;;
|
||||
|
||||
alter table canvassers drop column address_id;
|
||||
--;;
|
||||
alter table electors drop column address_id;
|
||||
--;;
|
||||
alter table visits drop column address_id;
|
||||
--;;
|
Loading…
Reference in a new issue