diff options
Diffstat (limited to 'corp/russian/data-import/src/db_setup.rs')
-rw-r--r-- | corp/russian/data-import/src/db_setup.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/corp/russian/data-import/src/db_setup.rs b/corp/russian/data-import/src/db_setup.rs index d85374dfa8dd..5959ad09e5d6 100644 --- a/corp/russian/data-import/src/db_setup.rs +++ b/corp/russian/data-import/src/db_setup.rs @@ -56,6 +56,17 @@ CREATE TABLE link_types ( name TEXT ) STRICT; +-- table for links between lemmata +CREATE TABLE links ( + id INTEGER PRIMARY KEY, + link_type INTEGER NOT NULL, + from_lemma INTEGER NOT NULL, + to_lemma INTEGER NOT NULL, + FOREIGN KEY(link_type) REFERENCES link_types(id), + FOREIGN KEY(from_lemma) REFERENCES lemmas(id), + FOREIGN KEY(to_lemma) REFERENCES lemmas(id) +) STRICT; + "#, ) .ensure("setting up initial table schema failed"); @@ -92,6 +103,19 @@ pub fn insert_oc_element(conn: &Connection, elem: OcElement) { info!("inserted link type {}", lt.name); } + + OcElement::Link(link) => { + let mut stmt = conn + .prepare_cached( + "INSERT INTO links (id, link_type, from_lemma, to_lemma) VALUES (?1, ?2, ?3, ?4)", + ) + .ensure("failed to prepare link statement"); + + stmt.execute((&link.id, &link.link_type, &link.from, &link.to)) + .ensure("failed to insert link"); + + debug!("inserted link {}", link.id); + } } } |