Finished upgrade to schema for entity upgrade
This commit is contained in:
parent
cca27b5475
commit
2594d826ef
11 changed files with 1858 additions and 0 deletions
90
share/ddl/SQLite/upgrade/5-6/001-auto.sql
Normal file
90
share/ddl/SQLite/upgrade/5-6/001-auto.sql
Normal file
|
@ -0,0 +1,90 @@
|
|||
-- Convert schema 'share/ddl/_source/deploy/5/001-auto.yml' to 'share/ddl/_source/deploy/6/001-auto.yml':;
|
||||
-- Customised for proper migration
|
||||
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE entities (
|
||||
id INTEGER PRIMARY KEY NOT NULL,
|
||||
type varchar(255) NOT NULL
|
||||
);
|
||||
|
||||
ALTER TABLE customers RENAME TO customers_temp;
|
||||
|
||||
CREATE TABLE customers (
|
||||
id INTEGER PRIMARY KEY NOT NULL,
|
||||
entity_id integer NOT NULL,
|
||||
display_name varchar(255) NOT NULL,
|
||||
full_name varchar(255) NOT NULL,
|
||||
year_of_birth integer NOT NULL,
|
||||
postcode varchar(16) NOT NULL,
|
||||
FOREIGN KEY (entity_id) REFERENCES entities(id) ON DELETE CASCADE
|
||||
);
|
||||
CREATE INDEX customers_idx_entity_id ON customers (entity_id);
|
||||
|
||||
-- Leaderboards must be regenerated, this saves trying to do this the hard way
|
||||
DROP TABLE leaderboard_values;
|
||||
DELETE FROM leaderboard_sets;
|
||||
|
||||
CREATE TABLE leaderboard_values (
|
||||
id INTEGER PRIMARY KEY NOT NULL,
|
||||
entity_id integer NOT NULL,
|
||||
set_id integer NOT NULL,
|
||||
position integer NOT NULL,
|
||||
value decimal(16,2) NOT NULL,
|
||||
trend integer NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY (entity_id) REFERENCES entities(id) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
FOREIGN KEY (set_id) REFERENCES leaderboard_sets(id) ON DELETE NO ACTION ON UPDATE NO ACTION
|
||||
);
|
||||
CREATE INDEX leaderboard_values_idx_entity_id ON leaderboard_values (entity_id);
|
||||
CREATE INDEX leaderboard_values_idx_set_id ON leaderboard_values (set_id);
|
||||
CREATE UNIQUE INDEX leaderboard_values_entity_id_set_id ON leaderboard_values (entity_id, set_id);
|
||||
|
||||
ALTER TABLE organisations RENAME TO organisations_temp;
|
||||
|
||||
CREATE TABLE organisations (
|
||||
id INTEGER PRIMARY KEY NOT NULL,
|
||||
entity_id integer NOT NULL,
|
||||
name varchar(255) NOT NULL,
|
||||
street_name text,
|
||||
town varchar(255) NOT NULL,
|
||||
postcode varchar(16),
|
||||
country varchar(255),
|
||||
sector varchar(1),
|
||||
pending boolean NOT NULL DEFAULT 0,
|
||||
submitted_by_id integer,
|
||||
FOREIGN KEY (entity_id) REFERENCES entities(id) ON DELETE CASCADE
|
||||
);
|
||||
CREATE INDEX organisations_idx_entity_id ON organisations (entity_id);
|
||||
|
||||
ALTER TABLE transactions RENAME TO transactions_temp;
|
||||
|
||||
CREATE TABLE transactions (
|
||||
id INTEGER PRIMARY KEY NOT NULL,
|
||||
buyer_id integer NOT NULL,
|
||||
seller_id integer NOT NULL,
|
||||
value decimal(16,2) NOT NULL,
|
||||
proof_image text,
|
||||
submitted_at datetime NOT NULL,
|
||||
purchase_time datetime NOT NULL,
|
||||
FOREIGN KEY (buyer_id) REFERENCES entities(id) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
FOREIGN KEY (seller_id) REFERENCES entities(id) ON DELETE NO ACTION ON UPDATE NO ACTION
|
||||
);
|
||||
CREATE INDEX transactions_idx_buyer_id02 ON transactions (buyer_id);
|
||||
CREATE INDEX transactions_idx_seller_id02 ON transactions (seller_id);
|
||||
|
||||
ALTER TABLE users RENAME TO users_temp;
|
||||
|
||||
CREATE TABLE users (
|
||||
id INTEGER PRIMARY KEY NOT NULL,
|
||||
entity_id integer NOT NULL,
|
||||
email text NOT NULL,
|
||||
join_date datetime NOT NULL,
|
||||
password varchar(100) NOT NULL,
|
||||
is_admin boolean NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY (entity_id) REFERENCES entities(id) ON DELETE CASCADE
|
||||
);
|
||||
CREATE INDEX users_idx_entity_id02 ON users (entity_id);
|
||||
CREATE UNIQUE INDEX users_email02 ON users (email);
|
||||
|
||||
COMMIT;
|
||||
|
13
share/ddl/SQLite/upgrade/5-6/003-remove-temps.sql
Normal file
13
share/ddl/SQLite/upgrade/5-6/003-remove-temps.sql
Normal file
|
@ -0,0 +1,13 @@
|
|||
-- Remove temporary tables created during migration
|
||||
|
||||
BEGIN;
|
||||
|
||||
DROP TABLE customers_temp;
|
||||
DROP TABLE organisations_temp;
|
||||
DROP TABLE transactions_temp;
|
||||
DROP TABLE users_temp;
|
||||
DROP TABLE pending_organisations;
|
||||
DROP TABLE pending_transactions;
|
||||
DROP TABLE administrators;
|
||||
|
||||
COMMIT;
|
Reference in a new issue