summaryrefslogtreecommitdiffstats
path: root/schema/aur-schema.sql
diff options
context:
space:
mode:
authorLukas Fleischer <archlinux@cryptocrack.de>2014-04-26 14:40:07 +0200
committerLukas Fleischer <archlinux@cryptocrack.de>2014-04-26 14:48:19 +0200
commit9553790cfc9a3bcb5c4bf2266565862082c26613 (patch)
treee3511cc1a1c23269867cabbdfeecc6b5db765a9c /schema/aur-schema.sql
parent38eb8d2a3ab0b7f35618d151613211d45f6ec4d8 (diff)
downloadaur-9553790cfc9a3bcb5c4bf2266565862082c26613.tar.gz
aur-9553790cfc9a3bcb5c4bf2266565862082c26613.tar.xz
Support multiple licenses per package
Split out package licenses into two separate tables in order to support multiple licenses per package. The code on the package details page is adjusted accordingly. UPGRADING contains instructions on how to convert existing licenses in the database to the new layout. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Diffstat (limited to 'schema/aur-schema.sql')
-rw-r--r--schema/aur-schema.sql22
1 files changed, 21 insertions, 1 deletions
diff --git a/schema/aur-schema.sql b/schema/aur-schema.sql
index ae42fd3e..85335489 100644
--- a/schema/aur-schema.sql
+++ b/schema/aur-schema.sql
@@ -126,13 +126,33 @@ CREATE TABLE Packages (
Version VARCHAR(32) NOT NULL DEFAULT '',
Description VARCHAR(255) NOT NULL DEFAULT "An Arch Package",
URL VARCHAR(255) NOT NULL DEFAULT "https://www.archlinux.org",
- License VARCHAR(40) NOT NULL DEFAULT '',
PRIMARY KEY (ID),
UNIQUE (Name),
FOREIGN KEY (PackageBaseID) REFERENCES PackageBases(ID) ON DELETE CASCADE
) ENGINE = InnoDB;
+-- Information about licenses
+--
+CREATE TABLE Licenses (
+ ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
+ Name VARCHAR(64) NOT NULL,
+ PRIMARY KEY (ID),
+ UNIQUE (Name)
+) ENGINE = InnoDB;
+
+
+-- Information about package-license-relations
+--
+CREATE TABLE PackageLicenses (
+ PackageID INTEGER UNSIGNED NOT NULL,
+ LicenseID INTEGER UNSIGNED NOT NULL,
+ PRIMARY KEY (PackageID, LicenseID),
+ FOREIGN KEY (PackageID) REFERENCES Packages(ID) ON DELETE CASCADE,
+ FOREIGN KEY (LicenseID) REFERENCES Licenses(ID) ON DELETE CASCADE
+) ENGINE = InnoDB;
+
+
-- Information about groups
--
CREATE TABLE Groups (