mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-24 14:30:56 +01:00
9160da1afb
Summary: Ref T8116. Partially scavenged from D14152. This roughs in a new Packages application for Arcanist extensions and third-party applications, and adds a "Publisher" object. A "Publisher" represents an individual or entity who is publishing a package, like "Phacility". It's explicitly //not// necessarily the original author -- just the primary entity vouching for the safety of the code. A publisher just has a name and a unique key for now. For example, Phacility might have "Phacility" and "phacility", respectively. Unique keys are immutable, e.g., the package "phacility/arcanist" will always be exactly the same package by exactly the same publisher. Test Plan: {F1731621} Reviewers: chad Reviewed By: chad Maniphest Tasks: T8116 Differential Revision: https://secure.phabricator.com/D16314
16 lines
571 B
SQL
16 lines
571 B
SQL
CREATE TABLE {$NAMESPACE}_packages.edge (
|
|
src VARBINARY(64) NOT NULL,
|
|
type INT UNSIGNED NOT NULL,
|
|
dst VARBINARY(64) NOT NULL,
|
|
dateCreated INT UNSIGNED NOT NULL,
|
|
seq INT UNSIGNED NOT NULL,
|
|
dataID INT UNSIGNED,
|
|
PRIMARY KEY (src, type, dst),
|
|
KEY `src` (src, type, dateCreated, seq),
|
|
UNIQUE KEY `key_dst` (dst, type, src)
|
|
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
|
|
|
|
CREATE TABLE {$NAMESPACE}_packages.edgedata (
|
|
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
data LONGTEXT NOT NULL COLLATE {$COLLATE_TEXT}
|
|
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
|