Tidy up schema

These changes produce a neater schema output in sqlite3.
This commit is contained in:
Nick Hall 2016-10-13 20:34:54 +01:00
parent 4a70e9233e
commit b29682cafb

View File

@ -178,147 +178,141 @@ class DBAPI(DbGeneric):
Create and update schema. Create and update schema.
""" """
# make sure schema is up to date: # make sure schema is up to date:
self.dbapi.execute("""CREATE TABLE person ( self.dbapi.execute('CREATE TABLE person '
handle VARCHAR(50) PRIMARY KEY NOT NULL, '('
given_name TEXT , 'handle VARCHAR(50) PRIMARY KEY NOT NULL, '
surname TEXT , 'given_name TEXT, '
gender_type INTEGER , 'surname TEXT, '
order_by TEXT , 'gender_type INTEGER, '
gramps_id TEXT , 'order_by TEXT, '
blob_data BLOB 'gramps_id TEXT, '
);""") 'blob_data BLOB'
self.dbapi.execute("""CREATE TABLE family ( ');')
handle VARCHAR(50) PRIMARY KEY NOT NULL, self.dbapi.execute('CREATE TABLE family '
father_handle VARCHAR(50), '('
mother_handle VARCHAR(50), 'handle VARCHAR(50) PRIMARY KEY NOT NULL, '
gramps_id TEXT , 'father_handle VARCHAR(50), '
blob_data BLOB 'mother_handle VARCHAR(50), '
);""") 'gramps_id TEXT, '
self.dbapi.execute("""CREATE TABLE source ( 'blob_data BLOB'
handle VARCHAR(50) PRIMARY KEY NOT NULL, ');')
order_by TEXT , self.dbapi.execute('CREATE TABLE source '
gramps_id TEXT , '('
blob_data BLOB 'handle VARCHAR(50) PRIMARY KEY NOT NULL, '
);""") 'order_by TEXT, '
self.dbapi.execute("""CREATE TABLE citation ( 'gramps_id TEXT, '
handle VARCHAR(50) PRIMARY KEY NOT NULL, 'blob_data BLOB'
order_by TEXT , ');')
gramps_id TEXT , self.dbapi.execute('CREATE TABLE citation '
blob_data BLOB '('
);""") 'handle VARCHAR(50) PRIMARY KEY NOT NULL, '
self.dbapi.execute("""CREATE TABLE event ( 'order_by TEXT, '
handle VARCHAR(50) PRIMARY KEY NOT NULL, 'gramps_id TEXT, '
gramps_id TEXT , 'blob_data BLOB'
blob_data BLOB ');')
);""") self.dbapi.execute('CREATE TABLE event '
self.dbapi.execute("""CREATE TABLE media ( '('
handle VARCHAR(50) PRIMARY KEY NOT NULL, 'handle VARCHAR(50) PRIMARY KEY NOT NULL, '
order_by TEXT , 'gramps_id TEXT, '
gramps_id TEXT , 'blob_data BLOB'
blob_data BLOB ');')
);""") self.dbapi.execute('CREATE TABLE media '
self.dbapi.execute("""CREATE TABLE place ( '('
handle VARCHAR(50) PRIMARY KEY NOT NULL, 'handle VARCHAR(50) PRIMARY KEY NOT NULL, '
order_by TEXT , 'order_by TEXT, '
gramps_id TEXT , 'gramps_id TEXT, '
blob_data BLOB 'blob_data BLOB'
);""") ');')
self.dbapi.execute("""CREATE TABLE repository ( self.dbapi.execute('CREATE TABLE place '
handle VARCHAR(50) PRIMARY KEY NOT NULL, '('
gramps_id TEXT , 'handle VARCHAR(50) PRIMARY KEY NOT NULL, '
blob_data BLOB 'order_by TEXT, '
);""") 'gramps_id TEXT, '
self.dbapi.execute("""CREATE TABLE note ( 'blob_data BLOB'
handle VARCHAR(50) PRIMARY KEY NOT NULL, ');')
gramps_id TEXT , self.dbapi.execute('CREATE TABLE repository '
blob_data BLOB '('
);""") 'handle VARCHAR(50) PRIMARY KEY NOT NULL, '
self.dbapi.execute("""CREATE TABLE tag ( 'gramps_id TEXT, '
handle VARCHAR(50) PRIMARY KEY NOT NULL, 'blob_data BLOB'
order_by TEXT , ');')
blob_data BLOB self.dbapi.execute('CREATE TABLE note '
);""") '('
'handle VARCHAR(50) PRIMARY KEY NOT NULL, '
'gramps_id TEXT, '
'blob_data BLOB'
');')
self.dbapi.execute('CREATE TABLE tag '
'('
'handle VARCHAR(50) PRIMARY KEY NOT NULL, '
'order_by TEXT, '
'blob_data BLOB'
');')
# Secondary: # Secondary:
self.dbapi.execute("""CREATE TABLE reference ( self.dbapi.execute('CREATE TABLE reference '
obj_handle VARCHAR(50), '('
obj_class TEXT, 'obj_handle VARCHAR(50), '
ref_handle VARCHAR(50), 'obj_class TEXT, '
ref_class TEXT 'ref_handle VARCHAR(50), '
);""") 'ref_class TEXT'
self.dbapi.execute("""CREATE TABLE name_group ( ');')
name VARCHAR(50) PRIMARY KEY NOT NULL, self.dbapi.execute('CREATE TABLE name_group '
grouping TEXT '('
);""") 'name VARCHAR(50) PRIMARY KEY NOT NULL, '
self.dbapi.execute("""CREATE TABLE metadata ( 'grouping TEXT'
setting VARCHAR(50) PRIMARY KEY NOT NULL, ');')
value BLOB self.dbapi.execute('CREATE TABLE metadata '
);""") '('
self.dbapi.execute("""CREATE TABLE gender_stats ( 'setting VARCHAR(50) PRIMARY KEY NOT NULL, '
given_name TEXT, 'value BLOB'
female INTEGER, ');')
male INTEGER, self.dbapi.execute('CREATE TABLE gender_stats '
unknown INTEGER '('
);""") 'given_name TEXT, '
'female INTEGER, '
'male INTEGER, '
'unknown INTEGER'
');')
## Indices: ## Indices:
self.dbapi.execute("""CREATE INDEX self.dbapi.execute('CREATE INDEX person_order_by '
person_order_by ON person(order_by); 'ON person(order_by);')
""") self.dbapi.execute('CREATE INDEX person_gramps_id '
self.dbapi.execute("""CREATE INDEX 'ON person(gramps_id);')
person_gramps_id ON person(gramps_id); self.dbapi.execute('CREATE INDEX person_surname '
""") 'ON person(surname);')
self.dbapi.execute("""CREATE INDEX self.dbapi.execute('CREATE INDEX person_given_name '
person_surname ON person(surname); 'ON person(given_name);')
""") self.dbapi.execute('CREATE INDEX source_order_by '
self.dbapi.execute("""CREATE INDEX 'ON source(order_by);')
person_given_name ON person(given_name); self.dbapi.execute('CREATE INDEX source_gramps_id '
""") 'ON source(gramps_id);')
self.dbapi.execute("""CREATE INDEX self.dbapi.execute('CREATE INDEX citation_order_by '
source_order_by ON source(order_by); 'ON citation(order_by);')
""") self.dbapi.execute('CREATE INDEX citation_gramps_id '
self.dbapi.execute("""CREATE INDEX 'ON citation(gramps_id);')
source_gramps_id ON source(gramps_id); self.dbapi.execute('CREATE INDEX media_order_by '
""") 'ON media(order_by);')
self.dbapi.execute("""CREATE INDEX self.dbapi.execute('CREATE INDEX media_gramps_id '
citation_order_by ON citation(order_by); 'ON media(gramps_id);')
""") self.dbapi.execute('CREATE INDEX place_order_by '
self.dbapi.execute("""CREATE INDEX 'ON place(order_by);')
citation_gramps_id ON citation(gramps_id); self.dbapi.execute('CREATE INDEX place_gramps_id '
""") 'ON place(gramps_id);')
self.dbapi.execute("""CREATE INDEX self.dbapi.execute('CREATE INDEX tag_order_by '
media_order_by ON media(order_by); 'ON tag(order_by);')
""") self.dbapi.execute('CREATE INDEX reference_ref_handle '
self.dbapi.execute("""CREATE INDEX 'ON reference(ref_handle);')
media_gramps_id ON media(gramps_id); self.dbapi.execute('CREATE INDEX family_gramps_id '
""") 'ON family(gramps_id);')
self.dbapi.execute("""CREATE INDEX self.dbapi.execute('CREATE INDEX event_gramps_id '
place_order_by ON place(order_by); 'ON event(gramps_id);')
""") self.dbapi.execute('CREATE INDEX repository_gramps_id '
self.dbapi.execute("""CREATE INDEX 'ON repository(gramps_id);')
place_gramps_id ON place(gramps_id); self.dbapi.execute('CREATE INDEX note_gramps_id '
""") 'ON note(gramps_id);')
self.dbapi.execute("""CREATE INDEX self.dbapi.execute('CREATE INDEX reference_obj_handle '
tag_order_by ON tag(order_by); 'ON reference(obj_handle);')
""")
self.dbapi.execute("""CREATE INDEX
reference_ref_handle ON reference(ref_handle);
""")
self.dbapi.execute("""CREATE INDEX
family_gramps_id ON family(gramps_id);
""")
self.dbapi.execute("""CREATE INDEX
event_gramps_id ON event(gramps_id);
""")
self.dbapi.execute("""CREATE INDEX
repository_gramps_id ON repository(gramps_id);
""")
self.dbapi.execute("""CREATE INDEX
note_gramps_id ON note(gramps_id);
""")
self.dbapi.execute("""CREATE INDEX
reference_obj_handle ON reference(obj_handle);
""")
self.rebuild_secondary_fields() self.rebuild_secondary_fields()
def close_backend(self): def close_backend(self):