From cb008af3d5847be4e31f5f67e3ac017b8adea58f Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 25 Oct 2007 19:03:53 +0000 Subject: [PATCH] mysql, yes, mysql. --- FS/FS/Schema.pm | 15 ++++++++------- FS/FS/TicketSystem/RT_External.pm | 30 +++++++++++++++--------------- Makefile | 24 ++++++++++-------------- 3 files changed, 33 insertions(+), 36 deletions(-) diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index a5954e949..d1be9f1f0 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'); } @@ -1022,7 +1022,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, '', '', @@ -1576,7 +1576,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, \"''", '', @@ -1668,7 +1669,7 @@ sub tables_hashref { 'cdr_type' => { 'columns' => [ 'cdrtypenum' => 'serial', '', '', '', '', - 'cdrtypename' => 'varchar', '', '', '', '', + 'cdrtypename' => 'varchar', '', $char_d, '', '', ], 'primary_key' => 'cdrtypenum', 'unique' => [], @@ -1678,7 +1679,7 @@ sub tables_hashref { 'cdr_carrier' => { 'columns' => [ 'carrierid' => 'serial', '', '', '', '', - 'carriername' => 'varchar', '', '', '', '', + 'carriername' => 'varchar', '', $char_d, '', '', ], 'primary_key' => 'carrierid', 'unique' => [], @@ -1783,7 +1784,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' ] ], @@ -1830,7 +1831,7 @@ sub tables_hashref { 'confnum', 'serial', '', '', '', '', 'agentnum', 'int', 'NULL', '', '', '', 'name', 'varchar', '', $char_d, '', '', - 'value', 'varchar', 'NULL', '', '', '', # Pg specific + 'value', 'long varbinary', 'NULL', '', '', '', ], 'primary_key' => 'confnum', 'unique' => [ [ 'agentnum', 'name' ]], diff --git a/FS/FS/TicketSystem/RT_External.pm b/FS/FS/TicketSystem/RT_External.pm index 0b9a98e0e..be5f22a77 100644 --- a/FS/FS/TicketSystem/RT_External.pm +++ b/FS/FS/TicketSystem/RT_External.pm @@ -73,8 +73,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 ". @@ -100,8 +100,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 = @@ -131,7 +131,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 @@ -142,7 +142,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 ) @@ -152,9 +152,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' @@ -259,7 +259,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"; @@ -272,7 +272,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"; @@ -319,8 +319,8 @@ sub transaction_ticketid { sub transaction_subject { my( $self, $transaction_id ) = @_; - my $sql = "SELECT subject from transactions JOIN tickets ON objectid=". - "tickets.id WHERE transactions.id = ". $transaction_id; + my $sql = "SELECT subject from Transactions JOIN Tickets ON objectid=". + "Tickets.id WHERE transactions.id = ". $transaction_id; $self->_retrieve_single_value($sql); } @@ -328,8 +328,8 @@ sub transaction_subject { sub transaction_status { my( $self, $transaction_id ) = @_; - my $sql = "SELECT status from transactions JOIN tickets ON objectid=". - "tickets.id WHERE transactions.id = ". $transaction_id; + my $sql = "SELECT status from Transactions JOIN Tickets ON objectid=". + "Tickets.id WHERE transactions.id = ". $transaction_id; $self->_retrieve_single_value($sql); } diff --git a/Makefile b/Makefile index 781467f3f..fec88546a 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 "\ @@ -298,7 +297,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} \ @@ -312,12 +311,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