summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitch Jackson <mitch@freeside.biz>2017-12-09 23:00:21 +0000
committerMitch Jackson <mitch@freeside.biz>2017-12-19 17:10:53 -0600
commit0521301227e488e4bef7a65dd814b1489cd06972 (patch)
tree5a3c1bfeb05ac7cf584f6bbb2006dad359442da9
parent131b90bf825fd1bcc6fe619dff2b7d9bb7ee0ab1 (diff)
rt# 74031 Update database schema
-rw-r--r--FS/FS/Schema.pm73
1 files changed, 71 insertions, 2 deletions
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index 6d7520b..6d88204 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<DBIx::DBSchema>
=cut
1;
-