Schema file now loads properly into MySQL.

This commit is contained in:
eric 2004-06-13 19:02:22 +00:00
parent 569216db79
commit 64520381cd

View file

@ -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
); );