summaryrefslogtreecommitdiffstats
path: root/schema
diff options
context:
space:
mode:
Diffstat (limited to 'schema')
-rw-r--r--schema/aur-schema.sql17
-rwxr-xr-xschema/gendummydata.py9
2 files changed, 22 insertions, 4 deletions
diff --git a/schema/aur-schema.sql b/schema/aur-schema.sql
index 9426a61..327a792 100644
--- a/schema/aur-schema.sql
+++ b/schema/aur-schema.sql
@@ -133,15 +133,30 @@ CREATE TABLE Packages (
) ENGINE = InnoDB;
+-- Define the package dependency types
+--
+CREATE TABLE DependencyTypes (
+ ID TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
+ Name VARCHAR(32) NOT NULL DEFAULT '',
+ PRIMARY KEY (ID)
+) ENGINE = InnoDB;
+INSERT INTO DependencyTypes VALUES (1, 'depends');
+INSERT INTO DependencyTypes VALUES (2, 'makedepends');
+INSERT INTO DependencyTypes VALUES (3, 'checkdepends');
+INSERT INTO DependencyTypes VALUES (4, 'optdepends');
+
+
-- Track which dependencies a package has
--
CREATE TABLE PackageDepends (
PackageID INTEGER UNSIGNED NOT NULL,
+ DepTypeID TINYINT UNSIGNED NOT NULL,
DepName VARCHAR(64) NOT NULL,
DepCondition VARCHAR(20),
INDEX (PackageID),
INDEX (DepName),
- FOREIGN KEY (PackageID) REFERENCES Packages(ID) ON DELETE CASCADE
+ FOREIGN KEY (PackageID) REFERENCES Packages(ID) ON DELETE CASCADE,
+ FOREIGN KEY (DepTypeID) REFERENCES DependencyTypes(ID) ON DELETE NO ACTION
) ENGINE = InnoDB;
diff --git a/schema/gendummydata.py b/schema/gendummydata.py
index bc0ede8..18852a2 100755
--- a/schema/gendummydata.py
+++ b/schema/gendummydata.py
@@ -28,7 +28,7 @@ MAX_USERS = 300 # how many users to 'register'
MAX_DEVS = .1 # what percentage of MAX_USERS are Developers
MAX_TUS = .2 # what percentage of MAX_USERS are Trusted Users
MAX_PKGS = 900 # how many packages to load
-PKG_DEPS = (1, 5) # min/max depends a package has
+PKG_DEPS = (1, 15) # min/max depends a package has
PKG_SRC = (1, 3) # min/max sources a package has
PKG_CMNTS = (1, 5) # min/max number of comments a package has
CATEGORIES_COUNT = 17 # the number of categories from aur-schema
@@ -258,8 +258,11 @@ for p in list(seen_pkgs.keys()):
while i != num_deps:
dep = random.choice([k for k in seen_pkgs])
if dep not in this_deps:
- s = "INSERT INTO PackageDepends VALUES (%d, '%s', NULL);\n"
- s = s % (seen_pkgs[p], dep)
+ deptype = random.randrange(1, 5)
+ if deptype == 4:
+ dep += ": for " + random.choice([k for k in seen_pkgs])
+ s = "INSERT INTO PackageDepends VALUES (%d, %d, '%s', NULL);\n"
+ s = s % (seen_pkgs[p], deptype, dep)
out.write(s)
i += 1