cool!
especially since I was looking for a way to escalate tickets in a
specific state by script, while avoiding the login procedure via the
webform.
I thought I'd just manipulate the database, set description, set state
and fine.
but I think I read on this list that this could break history and is a
no-go, so:
did you by accident break your ticket history while manipulating the
db directly with this nice perl script?
cu
christian unger
On 11.07.2008, at 21:42, Greg Troxel wrote:
>
> Posting partly because it might help someone else, and partly
> because I
> figure y'all might be amused.
>
> In a 0.10 installation, I had a typo in the summary field of a ticket.
> Not finding a way to edit that within trac, I fired up psql and typed
> something wrong, setting summary on all tickets because I forgot the
> where ticket.id = 92. In a fit of further confusion, I also set
> ticket.description on all tickets.
>
> Nightly, we run pg_dumpall:
>
> #!/bin/sh
>
> cd /home/[me]/POSTGRESQL_BACKUP || exit 1
>
> # Rotate old files.
> for i in `seq 9 -1 0`; do
> j=`expr $i + 1`
> [ -f DUMP.$i ] && mv DUMP.$i DUMP.$j
> done
>
> (echo -n "-- Created on [host] at "; date;
> pg_dumpall) \
>> DUMP.0
>
> So I grabbed that file, and loaded in on another machine. I then
> wrote
> a perl script to create sql statements to fix the two borked fields,
> leaving all other state alone, and sourced the output into psql on the
> real server. I enclose it here in case it helps someone else.
>
> I started to write a perl script to munge today's new ticket emails
> into
> insert statements, but gave up and used emacs macros on the emails
> since
> there were only 5 and that was faster.
>
>
>
> #!/usr/bin/env perl
>
> use strict;
>
> use DBI;
>
> my $dbh = DBI->connect("DBI:Pg:dbname=[redacted]", "[redacted]", "",
> { AutoCommit => 1 })
> or die "db";
>
> my $sth = $dbh->prepare("select id, summary, description from
> ticket;")
> or die "prepare";
>
> $sth->execute() or die "execute";
>
> my @vector;
> my($id, $summary, $description);
> while (@vector = $sth->fetchrow) {
> #printf "[%s] [%s]\n", @vector[0], @vector[1];
>
> $id = @vector[0];
> $summary = $dbh->quote(@vector[1]);
> $description = $dbh->quote(@vector[2]);
>
> printf "update ticket set summary = %s where ticket.id = %d;\n",
> $summary, $id;
> printf "update ticket set description = %s where ticket.id = %d;
> \n", $description, $id;
> }
>
> $sth->finish();
>
> $dbh->disconnect();
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Trac
Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/trac-users?hl=en
-~----------~----~----~----~------~----~------~--~---