From 0521301227e488e4bef7a65dd814b1489cd06972 Mon Sep 17 00:00:00 2001 From: Mitch Jackson Date: Sat, 9 Dec 2017 23:00:21 +0000 Subject: [PATCH] rt# 74031 Update database schema --- FS/FS/Schema.pm | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 6d7520bd9..6d882046f 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -495,7 +495,42 @@ sub tables_hashref { my $username_len = 64; #usernamemax config file - # name type nullability length default local + # Returns a hashref defining the entire application database schema + # Each key of the hashref contains a structure describing a database table + # + # table_name => { + # columns => [...], + # primary_key => 'column', + # unique => [column,column,...], + # index => [[column],[column,column],...], + # foreign_keys => [{...},{...},...], + # } + # + # + # columns => [ + # + # 'column_name', + # + # 'column_type', + # + # 'NULL' or '', # 'NULL' : Allow null values + # # '' : Disallow null values + # + # 'length', # Column size value. eg: + # # 40 : VARCHAR(40) + # # '10,2' : FLOAT(10,2) + # + # 'default', # Default column value for a new record + # # (Unclear is setting this to '' results in a default + # # value of NULL or empty string) + # + # '', # local ? + # + # name, type, nullability, length, default, local, + # name, type, nullability, length, default, local, + # ... + # + # ], return { @@ -7601,6 +7636,41 @@ sub tables_hashref { 'foreign_keys' => [], }, + 'realestate_property' => { + 'columns' => [ + 'propnum', 'serial', '', '', '', '', + 'agentnum', 'int', 'NULL', '', '', '', + 'title', 'varchar', '', $char_d, '', '', + 'address1', 'varchar', 'NULL', $char_d, '', '', + 'address2', 'varchar', 'NULL', $char_d, '', '', + 'city', 'varchar', 'NULL', $char_d, '', '', + 'state', 'varchar', 'NULL', $char_d, '', '', + 'zip', 'char', 'NULL', 5, '', '', + 'disabled', 'char', '', 1, '0', '', + ], + 'primary_key' => 'propnum', + 'unique' => [], + 'index' => [ ['agentnum'] ], + 'foreign_keys' => [ + {columns => ['agentnum'], table => 'agent'} + ], + }, + + 'realestate_subproperty' => { + 'columns' => [ + 'spropnum', 'serial', '', '', '', '', + 'propnum', 'int', '', '', '', '', + 'subtitle', 'varchar', '', $char_d, '', '', + 'disabled', 'char', '', 1, '0', '', + ], + 'primary_key' => 'spropnum', + 'unique' => [], + 'index' => [ ['propnum'] ], + 'foreign_keys' => [ + {columns => ['propnum'], table => 'realestate_property'} + ], + }, + # name type nullability length default local #'new_table' => { @@ -7627,4 +7697,3 @@ L =cut 1; - -- 2.11.0