forked from adamm/git-importer
Import the link information into an extra table
This commit is contained in:
parent
95412bc834
commit
e8094cbc68
29
lib/db.py
29
lib/db.py
@ -46,7 +46,8 @@ class DB:
|
|||||||
def create_tables(self):
|
def create_tables(self):
|
||||||
"""Create the tables if not existing - assumes connected"""
|
"""Create the tables if not existing - assumes connected"""
|
||||||
|
|
||||||
commands = (
|
schemes = dict()
|
||||||
|
schemes[1] = (
|
||||||
"""
|
"""
|
||||||
CREATE TABLE scheme (
|
CREATE TABLE scheme (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
@ -54,7 +55,7 @@ class DB:
|
|||||||
)
|
)
|
||||||
""",
|
""",
|
||||||
"INSERT INTO scheme (version) VALUES(1)",
|
"INSERT INTO scheme (version) VALUES(1)",
|
||||||
""" DROP TABLE IF EXISTS revisions""",
|
"""DROP TABLE IF EXISTS revisions """,
|
||||||
""" CREATE TABLE revisions (
|
""" CREATE TABLE revisions (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
project VARCHAR(255) NOT NULL,
|
project VARCHAR(255) NOT NULL,
|
||||||
@ -71,14 +72,32 @@ class DB:
|
|||||||
CREATE UNIQUE INDEX ppr ON revisions (project, package, rev);
|
CREATE UNIQUE INDEX ppr ON revisions (project, package, rev);
|
||||||
""",
|
""",
|
||||||
)
|
)
|
||||||
|
schemes[2] = (
|
||||||
|
"""DROP TABLE IF EXISTS links""",
|
||||||
|
"""
|
||||||
|
CREATE TABLE links (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
revision_id INTEGER,
|
||||||
|
project VARCHAR(255) NOT NULL,
|
||||||
|
package VARCHAR(255) NOT NULL
|
||||||
|
)
|
||||||
|
""",
|
||||||
|
"""
|
||||||
|
UPDATE scheme SET version=2
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
|
||||||
if self.schema_version() > 0:
|
schema_version = self.schema_version()
|
||||||
|
if (schema_version + 1) not in schemes:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
cur = self.conn.cursor()
|
cur = self.conn.cursor()
|
||||||
# create table one by one
|
# create table one by one
|
||||||
for command in commands:
|
for version, commands in schemes.items():
|
||||||
cur.execute(command)
|
if version <= schema_version:
|
||||||
|
continue
|
||||||
|
for command in commands:
|
||||||
|
cur.execute(command)
|
||||||
# close communication with the PostgreSQL database server
|
# close communication with the PostgreSQL database server
|
||||||
cur.close()
|
cur.close()
|
||||||
# commit the changes
|
# commit the changes
|
||||||
|
@ -14,8 +14,12 @@ class DBRevision:
|
|||||||
) = row
|
) = row
|
||||||
|
|
||||||
def links_to(self, db, project, package):
|
def links_to(self, db, project, package):
|
||||||
pass
|
db.cursor().execute(
|
||||||
|
"INSERT INTO links (revision_id, project, package) VALUES (%s,%s,%s)",
|
||||||
|
(self.dbid, project, package),
|
||||||
|
)
|
||||||
|
print("links_to", project, package)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def import_obs_rev(cls, db, revision):
|
def import_obs_rev(cls, db, revision):
|
||||||
cur = db.cursor()
|
cur = db.cursor()
|
||||||
@ -41,7 +45,7 @@ class DBRevision:
|
|||||||
cur = db.cursor()
|
cur = db.cursor()
|
||||||
cur.execute(
|
cur.execute(
|
||||||
"SELECT * FROM revisions where project=%s and package=%s and rev=%s",
|
"SELECT * FROM revisions where project=%s and package=%s and rev=%s",
|
||||||
(project, package, rev),
|
(project, package, str(rev)),
|
||||||
)
|
)
|
||||||
row = cur.fetchone()
|
row = cur.fetchone()
|
||||||
cur.close()
|
cur.close()
|
||||||
|
Loading…
Reference in New Issue
Block a user