Jump to: navigation, search

Difference between revisions of "Designate/Blueprints/Records Table Redesign"

(Existing Records Table)
(Existing Records Table)
Line 34: Line 34:
 
| domain_id || CHAR || 32 || False || Non-unique Key, Domain ID
 
| domain_id || CHAR || 32 || False || Non-unique Key, Domain ID
 
|-
 
|-
| managed || TINYINT || 1 || True || Boolean value to indicate if it is a managed resource
+
| managed || TINYINT || 1 || True || Boolean value indicates a managed resource
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| managed_resource_type || VARCHAR || 50 || True || Managed resource type
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| managed_resource_id || CHAR || 32 || True || Managed resource id
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| managed_plugin_name || VARCHAR || 50 || True || Managed plugin name
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| managed_plugin_type || VARCHAR || 50 || True || Managed plugin type
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| hash || VARCHAR || 32 || False || Unique Key, Hash value of record
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| description || VARCHAR || 160 || True || Description of record
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| status || ENUM("Active", "Pending", "Deleted") || - || False || Record status
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| tenant_id || VARCHAR || 36 || True || ID of record owner
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| recordset_id || CHAR || 32 || False || Non-unique Key, ID of recordset
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| managed_tenant_id || CHAR || 32 || True || ID of managed owner
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| managed_resource_region || VARCHAR || 100 || True || Region of managed
 
|-
 
|-
| Example || Example || Example || Example || Example
+
| managed_extra || VARCHAR || 100 || True || Extra field
|-
 
| Example || Example || Example || Example || Example
 
|-
 
| Example || Example || Example || Example || Example
 
|-
 
| Example || Example || Example || Example || Example
 
 
|}
 
|}

Revision as of 23:01, 18 March 2014

Overview

Gerrit Patch []
Launchpad Blueprint [1]

This blueprint proposes to subdivide the Records table, which includes all record types, into a table per record type. For instance, an "a_records" table for A records, "mx_records" table for MX records, and so on.

At this time, the migration of data from the existing Records table to the new separate tables is not included in this specification document.

Database Schema Changes - WIP

The existing Records table would become obsolete and be replaced with new tables for each record type.

Existing Records Table

Name Data Type Length Nullable Details
id CHAR 32 False Primary Key, Generated UUID
created_at DATETIME - False UTC time of creation
updated_at DATETIME - False UTC time of last update
version INTEGER 11 False Designate API version
data MEDIUMTEXT - False Data unique to a specific record
priority INTEGER 11 True Priority value for certain types of records
domain_id CHAR 32 False Non-unique Key, Domain ID
managed TINYINT 1 True Boolean value indicates a managed resource
managed_resource_type VARCHAR 50 True Managed resource type
managed_resource_id CHAR 32 True Managed resource id
managed_plugin_name VARCHAR 50 True Managed plugin name
managed_plugin_type VARCHAR 50 True Managed plugin type
hash VARCHAR 32 False Unique Key, Hash value of record
description VARCHAR 160 True Description of record
status ENUM("Active", "Pending", "Deleted") - False Record status
tenant_id VARCHAR 36 True ID of record owner
recordset_id CHAR 32 False Non-unique Key, ID of recordset
managed_tenant_id CHAR 32 True ID of managed owner
managed_resource_region VARCHAR 100 True Region of managed
managed_extra VARCHAR 100 True Extra field