From 2de7369e9d05cb8009d8a8bb9d489a2d315db1d6 Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 25 Oct 2007 19:03:54 +0000 Subject: [PATCH] mysql, yes, mysql. --- FS/FS/Schema.pm | 13 +++++++------ FS/FS/TicketSystem/RT_External.pm | 22 +++++++++++----------- Makefile | 24 ++++++++++-------------- 3 files changed, 28 insertions(+), 31 deletions(-) diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index d398a6627..e56a91b30 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -229,7 +229,7 @@ sub dbdef_dist { qw( name type null length default local ) } ); - if ( $column->type eq 'serial' ) { + if ( $column->type =~ /^(\w*)SERIAL$/i ) { $column->type('int'); $column->null('NULL'); } @@ -924,7 +924,7 @@ sub tables_hashref { 'catchall', 'int', 'NULL', '', '', '', 'parent_svcnum', 'int', 'NULL', '', '', '', 'registrarnum', 'int', 'NULL', '', '', '', - 'registrarkey', 'varchar', 'NULL', '', '', '', + 'registrarkey', 'varchar', 'NULL', 512, '', '', 'setup_date', @date_type, '', '', 'renewal_interval', 'int', 'NULL', '', '', '', 'expiration_date', @date_type, '', '', @@ -1476,7 +1476,8 @@ sub tables_hashref { ### 'acctid', 'bigserial', '', '', '', '', - 'calldate', 'TIMESTAMP with time zone', '', '', \'now()', '', + #'calldate', 'TIMESTAMP with time zone', '', '', \'now()', '', + 'calldate', 'timestamp', '', '', \'now()', '', 'clid', 'varchar', '', $char_d, \"''", '', 'src', 'varchar', '', $char_d, \"''", '', 'dst', 'varchar', '', $char_d, \"''", '', @@ -1568,7 +1569,7 @@ sub tables_hashref { 'cdr_type' => { 'columns' => [ 'cdrtypenum' => 'serial', '', '', '', '', - 'cdrtypename' => 'varchar', '', '', '', '', + 'cdrtypename' => 'varchar', '', $char_d, '', '', ], 'primary_key' => 'cdrtypenum', 'unique' => [], @@ -1578,7 +1579,7 @@ sub tables_hashref { 'cdr_carrier' => { 'columns' => [ 'carrierid' => 'serial', '', '', '', '', - 'carriername' => 'varchar', '', '', '', '', + 'carriername' => 'varchar', '', $char_d, '', '', ], 'primary_key' => 'carrierid', 'unique' => [], @@ -1682,7 +1683,7 @@ sub tables_hashref { 'rightnum', 'serial', '', '', '', '', 'righttype', 'varchar', '', $char_d, '', '', 'rightobjnum', 'int', '', '', '', '', - 'rightname', 'varchar', '', '', '', '', + 'rightname', 'varchar', '', $char_d, '', '', ], 'primary_key' => 'rightnum', 'unique' => [ [ 'righttype', 'rightobjnum', 'rightname' ] ], diff --git a/FS/FS/TicketSystem/RT_External.pm b/FS/FS/TicketSystem/RT_External.pm index ea9c2b5a9..a668beba1 100644 --- a/FS/FS/TicketSystem/RT_External.pm +++ b/FS/FS/TicketSystem/RT_External.pm @@ -71,8 +71,8 @@ sub customer_tickets { $limit ||= 0; my( $from_sql, @param) = $self->_from_customer( $custnum, $priority ); - my $sql="SELECT tickets.*, queues.name, ". - "position(tickets.status in 'newopenstalledresolvedrejecteddeleted')". + my $sql="SELECT Tickets.*, Queues.name, ". + "position(Tickets.status in 'newopenstalledresolvedrejecteddeleted')". " AS svalue " . ( length($priority) ? ", objectcustomfieldvalues.content" : '' ). " $from_sql ORDER BY svalue, priority DESC, id DESC LIMIT $limit"; @@ -94,8 +94,8 @@ sub _from_customer { my $where = ''; if ( defined($priority) ) { - my $queue_sql = " ObjectCustomFields.ObjectId = ( SELECT id FROM queues - WHERE queues.name = ? ) + my $queue_sql = " ObjectCustomFields.ObjectId = ( SELECT id FROM Queues + WHERE Queues.name = ? ) OR ( ? = '' AND ObjectCustomFields.ObjectId = 0 )"; my $customfield_sql = @@ -125,7 +125,7 @@ sub _from_customer { unshift @param, $priority; $join = "JOIN ObjectCustomFieldValues - ON ( tickets.id = ObjectCustomFieldValues.ObjectId )"; + ON ( Tickets.id = ObjectCustomFieldValues.ObjectId )"; $where = " AND content = ? AND ObjectCustomFieldValues.disabled != 1 @@ -136,7 +136,7 @@ sub _from_customer { $where = "AND 0 = ( SELECT count(*) FROM ObjectCustomFieldValues - WHERE ObjectId = tickets.id + WHERE ObjectId = Tickets.id AND ObjectType = 'RT::Ticket' AND $customfield_sql ) @@ -146,9 +146,9 @@ sub _from_customer { } my $sql = " - FROM tickets - JOIN queues ON ( tickets.queue = queues.id ) - JOIN links ON ( tickets.id = links.localbase ) + FROM Tickets + JOIN Queues ON ( Tickets.queue = Queues.id ) + JOIN Links ON ( Tickets.id = Links.localbase ) $join WHERE ( ". join(' OR ', map "status = '$_'", $self->statuses ). " ) AND target = 'freeside://freeside/cust_main/$custnum' @@ -253,7 +253,7 @@ sub href_ticket { sub queues { my($self) = @_; - my $sql = "SELECT id, name FROM queues WHERE disabled = 0"; + my $sql = "SELECT id, name FROM Queues WHERE disabled = 0"; my $sth = $dbh->prepare($sql) or die $dbh->errstr. " preparing $sql"; $sth->execute() or die $sth->errstr. " executing $sql"; @@ -266,7 +266,7 @@ sub queue { return '' unless $queueid; - my $sql = "SELECT name FROM queues WHERE id = ?"; + my $sql = "SELECT name FROM Queues WHERE id = ?"; my $sth = $dbh->prepare($sql) or die $dbh->errstr. " preparing $sql"; $sth->execute($queueid) or die $sth->errstr. " executing $sql"; diff --git a/Makefile b/Makefile index 72c4b423b..81670fa83 100644 --- a/Makefile +++ b/Makefile @@ -3,12 +3,14 @@ #solaris and perhaps other very weirdass /bin/sh #SHELL="/bin/ksh" -DATASOURCE = DBI:Pg:dbname=freeside -#DATASOURCE=DBI:mysql:freeside +DB_TYPE = Pg +#DB_TYPE = mysql DB_USER = freeside DB_PASSWORD= +DATASOURCE = DBI:${DB_TYPE}:dbname=freeside + #changable now (some things which should go to the others still go to CONF) FREESIDE_CONF = /usr/local/etc/freeside FREESIDE_LOG = /usr/local/etc/freeside @@ -26,9 +28,6 @@ APACHE_VERSION = 1 #mod_perl v2 proper and prereleases 1.999_22 and after #APACHE_VERSION = 2 -# only mason now -TEMPLATE = mason - #deb FREESIDE_DOCUMENT_ROOT = /var/www/freeside #redhat, fedora, mandrake @@ -144,7 +143,7 @@ masondocs: httemplate/* httemplate/*/* httemplate/*/*/* httemplate/*/*/*/* alldocs: masondocs docs: - make ${TEMPLATE}docs + make masondocs wikiman: chmod a+rx ./bin/pod2x @@ -152,7 +151,7 @@ wikiman: install-docs: docs [ -e ${FREESIDE_DOCUMENT_ROOT} ] && mv ${FREESIDE_DOCUMENT_ROOT} ${FREESIDE_DOCUMENT_ROOT}.`date +%Y%m%d%H%M%S` || true - cp -r ${TEMPLATE}docs ${FREESIDE_DOCUMENT_ROOT} + cp -r masondocs ${FREESIDE_DOCUMENT_ROOT} chown -R freeside:freeside ${FREESIDE_DOCUMENT_ROOT} cp htetc/handler.pl ${MASON_HANDLER} perl -p -i -e "\ @@ -299,7 +298,7 @@ configure-rt: s'%%%MASONDATA%%%'${MASONDATA}'g;\ " config.layout; \ ./configure --enable-layout=Freeside\ - --with-db-type=Pg \ + --with-db-type=${DB_TYPE} \ --with-db-dba=${DB_USER} \ --with-db-database=${RT_DB_DATABASE} \ --with-db-rt-user=${DB_USER} \ @@ -313,12 +312,9 @@ create-rt: configure-rt [ -d /opt/rt3 ] || mkdir /opt/rt3 # [ -d /opt/rt3/share ] || mkdir /opt/rt3/share # cd rt; make install - echo -e "${DB_PASSWORD}\n\\d sessions"\ - | psql -U ${DB_USER} -W ${RT_DB_DATABASE} 2>&1\ - | grep '^Did not find'\ - && rt/sbin/rt-setup-database --dba '${DB_USER}' \ - --dba-password '${DB_PASSWORD}' \ - --action schema \ + rt/sbin/rt-setup-database --dba '${DB_USER}' \ + -dba-password '${DB_PASSWORD}' \ + -action schema \ || true rt/sbin/rt-setup-database --action insert_initial \ && rt/sbin/rt-setup-database --action insert --datafile ${RT_PATH}/etc/initialdata \ -- 2.11.0