Files
books/fixes.sql

80 lines
2.8 KiB
SQL

ALTER TABLE genre_lst RENAME TO genre;
ALTER TABLE genre RENAME COLUMN genre TO name;
CREATE TABLE condition (
id INTEGER,
name VARCHAR(20) not null,
constraint pk_condition primary key(id)
);
INSERT INTO condition VALUES ( 1, 'Good' );
INSERT INTO condition VALUES ( 2, 'Average' );
INSERT INTO condition VALUES ( 3, 'Needs Replacing' );
INSERT INTO condition VALUES ( 4, 'N/A' );
ALTER TABLE book ADD COLUMN temp_cond integer , ADD CONSTRAINT fk_book_condition_new foreign key(temp_cond) REFERENCES condition(id)
CREATE TABLE covertype (
id INTEGER,
name VARCHAR(20) not null,
constraint pk_covertype primary key(id)
);
INSERT INTO covertype VALUES ( 1, 'Paperback' );
INSERT INTO covertype VALUES ( 2, 'Over-size Paperback' );
INSERT INTO covertype VALUES ( 3, 'Hardcover' );
INSERT INTO covertype VALUES ( 4, 'N/A' );
ALTER TABLE book ADD COLUMN temp_cover integer , ADD CONSTRAINT fk_book_covertype_new foreign key(temp_cover) REFERENCES covertype(id)
CREATE TABLE owned (
id INTEGER,
name VARCHAR(20) not null,
constraint pk_owned primary key(id)
);
INSERT INTO owned VALUES ( 1, 'Currently Owned' );
INSERT INTO owned VALUES ( 2, 'On Wish List' );
INSERT INTO owned VALUES ( 3, 'Sold' );
ALTER TABLE book ADD COLUMN temp_owned integer , ADD CONSTRAINT fk_book_owned_new foreign key(temp_owned) REFERENCES owned(id);
CREATE TABLE rating (
id INTEGER,
name VARCHAR(20) not null,
constraint pk_rating primary key(id)
);
INSERT INTO rating VALUES ( 1, '10' );
INSERT INTO rating VALUES ( 2, '9' );
INSERT INTO rating VALUES ( 3, '8' );
INSERT INTO rating VALUES ( 4, '7' );
INSERT INTO rating VALUES ( 5, '6' );
INSERT INTO rating VALUES ( 6, '5' );
INSERT INTO rating VALUES ( 7, '4' );
INSERT INTO rating VALUES ( 8, '3' );
INSERT INTO rating VALUES ( 9, '2' );
INSERT INTO rating VALUES ( 10, '1' );
INSERT INTO rating VALUES ( 11, 'N/A' );
INSERT INTO rating VALUES ( 12, 'Undefined' );
ALTER TABLE book ADD COLUMN temp_rating integer, ADD CONSTRAINT fk_book_rating_new foreign key(temp_rating) REFERENCES rating(id);
### fore each new table (e.g do above), then
# add appropriate new field to Book class definition, eg for condition:
temp_cond = db.Column(db.Integer)
# then run python code with fix_db() -- which fixes appropriate Book.<new_field>, then:
ALTER TABLE book DROP COLUMN condition;
ALTER TABLE book RENAME COLUMN temp_cond TO condition;
ALTER TABLE book DROP COLUMN covertype;
ALTER TABLE book RENAME COLUMN temp_cover TO covertype;
ALTER TABLE book DROP COLUMN owned;
ALTER TABLE book RENAME COLUMN temp_owned TO owned;
ALTER TABLE book DROP COLUMN rating;
ALTER TABLE book RENAME COLUMN temp_rating TO rating;
DROP TABLE condition_lst
DROP TABLE covertype_lst
DROP TABLE owned_lst
DROP TABLE rating_lst
# then modify main.py again, to delete condition and rename temp_<field> to <feild> in class Book