projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b4dc48b
)
custom fields, RT11714
author
levinse
<levinse>
Sat, 9 Jul 2011 02:59:49 +0000
(
02:59
+0000)
committer
levinse
<levinse>
Sat, 9 Jul 2011 02:59:49 +0000
(
02:59
+0000)
FS/FS/Schema.pm
patch
|
blob
|
history
FS/bin/freeside-upgrade
patch
|
blob
|
history
diff --git
a/FS/FS/Schema.pm
b/FS/FS/Schema.pm
index
c786176
..
1885a65
100644
(file)
--- a/
FS/FS/Schema.pm
+++ b/
FS/FS/Schema.pm
@@
-2467,9
+2467,7
@@
sub tables_hashref {
'vfieldpart', 'serial', '', '', '', '',
'dbtable', 'varchar', '', 32, '', '',
'name', 'varchar', '', 32, '', '',
'vfieldpart', 'serial', '', '', '', '',
'dbtable', 'varchar', '', 32, '', '',
'name', 'varchar', '', 32, '', '',
- 'check_block', 'text', 'NULL', '', '', '',
'length', 'int', 'NULL', '', '', '',
'length', 'int', 'NULL', '', '', '',
- 'list_source', 'text', 'NULL', '', '', '',
'label', 'varchar', 'NULL', 80, '', '',
],
'primary_key' => 'vfieldpart',
'label', 'varchar', 'NULL', 80, '', '',
],
'primary_key' => 'vfieldpart',
diff --git
a/FS/bin/freeside-upgrade
b/FS/bin/freeside-upgrade
index
e11a0a7
..
16c30d9
100755
(executable)
--- a/
FS/bin/freeside-upgrade
+++ b/
FS/bin/freeside-upgrade
@@
-127,6
+127,19
@@
my @statements = dbdef->sql_update_schema( dbdef_dist(datasrc),
{ 'nullify_default' => 1, },
);
{ 'nullify_default' => 1, },
);
+#### NEW CUSTOM FIELDS (prevent columns from being dropped by upgrade)
+my $cfsth = $dbh->prepare("SELECT * FROM part_virtual_field")
+ or die $dbh->errstr;
+$cfsth->execute or die $cfsth->errstr;
+my $cf;
+# likely a very inefficient implementation of this
+while ( $cf = $cfsth->fetchrow_hashref ) {
+ my $tbl = $cf->{'dbtable'};
+ my $name = $cf->{'name'};
+ @statements = grep { $_ !~ /^\s*ALTER\s+TABLE\s+$tbl\s+DROP\s+COLUMN\s+cf_$name\s*$/i }
+ @statements;
+}
+
@statements =
grep { $_ !~ /^CREATE +INDEX +h_queue/i } #useless, holds up queue insertion
@statements;
@statements =
grep { $_ !~ /^CREATE +INDEX +h_queue/i } #useless, holds up queue insertion
@statements;