mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Schema file now loads properly into MySQL.
This commit is contained in:
parent
569216db79
commit
64520381cd
1 changed files with 49 additions and 45 deletions
|
@ -1,36 +1,38 @@
|
||||||
-- The MySQL database layout for the AUR. Certain data
|
-- The MySQL database layout for the AUR. Certain data
|
||||||
-- is also included such as AccountTypes, PackageLocations, etc.
|
-- is also included such as AccountTypes, PackageLocations, etc.
|
||||||
--
|
--
|
||||||
|
DROP DATABASE AUR;
|
||||||
|
CREATE DATABASE AUR;
|
||||||
|
|
||||||
-- Define the Account Types for the AUR.
|
-- Define the Account Types for the AUR.
|
||||||
--
|
--
|
||||||
CREATE TABLE AccountTypes (
|
CREATE TABLE AccountTypes (
|
||||||
ID UNSIGNED TINYINT NOT NULL AUTO_INCREMENT,
|
ID TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
AccountType char(32) NOT NULL DEFAULT '',
|
AccountType char(32) NOT NULL DEFAULT '',
|
||||||
PRIMARY KEY (ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
INSERT INTO TABLE (ID, AccountType) VALUES (1, 'User');
|
INSERT INTO AccountTypes (ID, AccountType) VALUES (1, 'User');
|
||||||
INSERT INTO TABLE (ID, AccountType) VALUES (2, 'Trusted User');
|
INSERT INTO AccountTypes (ID, AccountType) VALUES (2, 'Trusted User');
|
||||||
INSERT INTO TABLE (ID, AccountType) VALUES (3, 'Developer');
|
INSERT INTO AccountTypes (ID, AccountType) VALUES (3, 'Developer');
|
||||||
|
|
||||||
|
|
||||||
-- User information for each user regardless of type.
|
-- User information for each user regardless of type.
|
||||||
--
|
--
|
||||||
CREATE TABLE Users (
|
CREATE TABLE Users (
|
||||||
ID UNSIGNED INTEGER NOT NULL AUTO_INCREMENT,
|
ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
AccountTypeID UNSIGNED TINYINT NOT NULL DEFAULT 1,
|
AccountTypeID TINYINT UNSIGNED NOT NULL DEFAULT 1,
|
||||||
Suspended UNSIGNED TINYINT NOT NULL DEFAULT 0,
|
Suspended TINYINT UNSIGNED NOT NULL DEFAULT 0,
|
||||||
Email CHAR(64) NOT NULL,
|
Email CHAR(64) NOT NULL,
|
||||||
Passwd CHAR(32) NOT NULL,
|
Passwd CHAR(32) NOT NULL,
|
||||||
RealName CHAR(64) NOT NULL DEFAULT '',
|
RealName CHAR(64) NOT NULL DEFAULT '',
|
||||||
IRCNick CHAR(32) NOT NULL DEFAULT '',
|
IRCNick CHAR(32) NOT NULL DEFAULT '',
|
||||||
LastVoted UNSIGNED BIGINT NOT NULL DEFAULT 0,
|
LastVoted BIGINT UNSIGNED NOT NULL DEFAULT 0,
|
||||||
NewPkgNotify UNSIGNED TINYINT NOT NULL DEFAULT 0,
|
NewPkgNotify TINYINT UNSIGNED NOT NULL DEFAULT 0,
|
||||||
PRIMARY KEY (ID),
|
PRIMARY KEY (ID),
|
||||||
UNIQUE INDEX Emailx (Email),
|
UNIQUE (Email),
|
||||||
INDEX AccountTypeIDx (AccountTypeID),
|
INDEX (AccountTypeID),
|
||||||
INDEX NewPkgNotifyx (NewPkgNotify),
|
INDEX (NewPkgNotify),
|
||||||
FOREIGN KEY AccountTypeIDr REFERENCES AccountTypes (ID)
|
FOREIGN KEY (AccountTypeID) REFERENCES AccountTypes(ID) ON DELETE NO ACTION
|
||||||
);
|
);
|
||||||
-- A default developer account for testing purposes
|
-- A default developer account for testing purposes
|
||||||
INSERT INTO Users (ID, AccountTypeID, Email, Passwd) VALUES (
|
INSERT INTO Users (ID, AccountTypeID, Email, Passwd) VALUES (
|
||||||
|
@ -40,10 +42,10 @@ INSERT INTO Users (ID, AccountTypeID, Email, Passwd) VALUES (
|
||||||
-- Track Users logging in/out of AUR web site.
|
-- Track Users logging in/out of AUR web site.
|
||||||
--
|
--
|
||||||
CREATE TABLE Sessions (
|
CREATE TABLE Sessions (
|
||||||
UsersID UNSIGNED INTEGER NOT NULL,
|
UsersID INTEGER UNSIGNED NOT NULL,
|
||||||
SessionID CHAR(32) NOT NULL,
|
SessionID CHAR(32) NOT NULL,
|
||||||
LastUpdateTS UNSIGNED BIGINT NOT NULL,
|
LastUpdateTS BIGINT UNSIGNED NOT NULL,
|
||||||
FOREIGN KEY UsersIDr REFERENCES Users (ID)
|
FOREIGN KEY (UsersID) REFERENCES Users(ID)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,7 +54,7 @@ CREATE TABLE Sessions (
|
||||||
-- in 'extra'.
|
-- in 'extra'.
|
||||||
--
|
--
|
||||||
CREATE TABLE PackageCategories (
|
CREATE TABLE PackageCategories (
|
||||||
ID UNSIGNED TINYINT NOT NULL AUTO_INCREMENT,
|
ID TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
Category CHAR(32) NOT NULL,
|
Category CHAR(32) NOT NULL,
|
||||||
PRIMARY KEY (ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
|
@ -78,7 +80,7 @@ INSERT INTO PackageCategories (Category) VALUES ('xfce');
|
||||||
-- The various repositories that a package could live in.
|
-- The various repositories that a package could live in.
|
||||||
--
|
--
|
||||||
CREATE TABLE PackageLocations (
|
CREATE TABLE PackageLocations (
|
||||||
ID UNSIGNED TINYINT NOT NULL AUTO_INCREMENT,
|
ID TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
Location CHAR(32) NOT NULL,
|
Location CHAR(32) NOT NULL,
|
||||||
PRIMARY KEY (ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
|
@ -92,48 +94,50 @@ INSERT INTO PackageLocations (ID, Location) VALUES (5, 'Unstable');
|
||||||
-- Information about the actual packages
|
-- Information about the actual packages
|
||||||
--
|
--
|
||||||
CREATE TABLE Packages (
|
CREATE TABLE Packages (
|
||||||
ID UNSIGNED INTEGER NOT NULL AUTO_INCREMENT,
|
ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
Name CHAR(32) NOT NULL,
|
Name CHAR(32) NOT NULL,
|
||||||
Version CHAR(32) NOT NULL DEFAULT '',
|
Version CHAR(32) NOT NULL DEFAULT '',
|
||||||
CategoryID UNSIGNED TINYINT NOT NULL,
|
CategoryID TINYINT UNSIGNED NOT NULL,
|
||||||
Description CHAR(128) NOT NULL DEFAULT "An Arch Package",
|
Description CHAR(128) NOT NULL DEFAULT "An Arch Package",
|
||||||
URL CHAR(256) NOT NULL DEFAULT "http://www.archlinux.org",
|
URL CHAR(255) NOT NULL DEFAULT "http://www.archlinux.org",
|
||||||
Source CHAR(256) NOT NULL DEFAULT "/dev/null",
|
Source CHAR(255) NOT NULL DEFAULT "/dev/null",
|
||||||
LocationID UNSIGNED TINYINT NOT NULL,
|
LocationID TINYINT UNSIGNED NOT NULL,
|
||||||
OutOfDate UNSIGNED TINYINT DEFAULT 0,
|
OutOfDate TINYINT UNSIGNED DEFAULT 0,
|
||||||
SubmittedTS UNSIGNED BIGINT NOT NULL,
|
SubmittedTS BIGINT UNSIGNED NOT NULL,
|
||||||
SubmitterUID UNSIGNED INTEGER NOT NULL DEFAULT 0,
|
SubmitterUID INTEGER UNSIGNED NOT NULL DEFAULT 0,
|
||||||
MaintainerUID UNSIGNED INTEGER NOT NULL DEFAULT 0,
|
MaintainerUID INTEGER UNSIGNED NOT NULL DEFAULT 0,
|
||||||
PRIMARY KEY (ID),
|
PRIMARY KEY (ID),
|
||||||
UNIQUE INDEX Namex (Name),
|
UNIQUE (Name),
|
||||||
INDEX CategoryIDx (CategoryID),
|
INDEX (CategoryID),
|
||||||
INDEX LocationIDx (LocationID),
|
INDEX (LocationID),
|
||||||
INDEX OutOfDatex (OutOfDate),
|
INDEX (OutOfDate),
|
||||||
INDEX SubmitterUIDx (SubmitterUID),
|
INDEX (SubmitterUID),
|
||||||
INDEX MaintainerUIDx (MaintainerUID),
|
INDEX (MaintainerUID),
|
||||||
FOREIGN KEY CategoryIDr REFERENCES PackageCategories (ID),
|
FOREIGN KEY (CategoryID) REFERENCES PackageCategories(ID) ON DELETE NO ACTION,
|
||||||
FOREIGN KEY LocationIDr REFERENCES PackageLocations (ID)
|
FOREIGN KEY (LocationID) REFERENCES PackageLocations(ID) ON DELETE NO ACTION,
|
||||||
FOREIGN KEY SubmitterUIDr REFERENCES Users (ID)
|
FOREIGN KEY (SubmitterUID) REFERENCES Users(ID) ON DELETE NO ACTION,
|
||||||
FOREIGN KEY MaintainerUIDr REFERENCES Users (ID)
|
FOREIGN KEY (MaintainerUID) REFERENCES Users(ID) ON DELETE NO ACTION
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
-- Track votes for packages
|
-- Track votes for packages
|
||||||
--
|
--
|
||||||
CREATE TABLE PackageVotes (
|
CREATE TABLE PackageVotes (
|
||||||
UsersID UNSIGNED INTEGER NOT NULL,
|
UsersID INTEGER UNSIGNED NOT NULL,
|
||||||
PackageID UNSIGNED INTEGER NOT NULL,
|
PackageID INTEGER UNSIGNED NOT NULL,
|
||||||
PRIMARY KEY (ID),
|
INDEX (UsersID),
|
||||||
FOREIGN KEY UsersIDx REFERENCES Users (ID),
|
INDEX (PackageID),
|
||||||
FOREIGN KEY PackageIDx REFERENCES Packages (ID)
|
FOREIGN KEY (UsersID) REFERENCES Users(ID) ON DELETE CASCADE,
|
||||||
|
FOREIGN KEY (PackageID) REFERENCES Packages(ID) ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
-- The individual files and their file system location.
|
-- The individual files and their file system location.
|
||||||
--
|
--
|
||||||
CREATE TABLE PackageContents (
|
CREATE TABLE PackageContents (
|
||||||
PackageID UNSIGNED INTEGER NOT NULL,
|
PackageID INTEGER UNSIGNED NOT NULL,
|
||||||
Path CHAR(256) NOT NULL,
|
Path CHAR(255) NOT NULL,
|
||||||
INDEX PackageIDx (PackageID)
|
INDEX (PackageID),
|
||||||
|
FOREIGN KEY (PackageID) REFERENCES Packages(ID) ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue