1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-22 13:30:55 +01:00
phorge-phorge/resources/sql/autopatches/20141017.almanac.binding.sql
epriestley d5b70e2c1c Add AlmanacBinding, to bind a service to an interface
Summary: Ref T5833. Allows you to bind a service (like `db.example.com`) to one or more interfaces (for example, to specify a pool with one read/write host and two read-only hosts). You can't configure which hosts have which properties yet, but you can add all the relevant interfaces to the service. Next diff will start supporting service, binding, and device properties like "is writable", "is active", etc., so that Almanac will be able to express operations like "change which database is writable", "disable writes", "bring a device down", etc.

Test Plan: See screenshots.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T5833

Differential Revision: https://secure.phabricator.com/D10745
2014-10-27 13:39:36 -07:00

14 lines
561 B
SQL

CREATE TABLE {$NAMESPACE}_almanac.almanac_binding (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
phid VARBINARY(64) NOT NULL,
servicePHID VARBINARY(64) NOT NULL,
devicePHID VARBINARY(64) NOT NULL,
interfacePHID VARBINARY(64) NOT NULL,
mailKey BINARY(20) NOT NULL,
dateCreated INT UNSIGNED NOT NULL,
dateModified INT UNSIGNED NOT NULL,
UNIQUE KEY `key_phid` (phid),
UNIQUE KEY `key_service` (servicePHID, interfacePHID),
KEY `key_device` (devicePHID),
KEY `key_interface` (interfacePHID)
) ENGINE=InnoDB, COLLATE utf8_general_ci;