MT の permalink に entry_id 使ってたので entry_basename 使うよう変更した
permalink の指定を <$MTArchiveDate format=\"%Y/%m/%d\"$>/<$MTEntryID pad=\"1\"$>.html てやってたのを自分で basename 指定できるようにしたいなと思って yyyy/mm/dd/entry_basename.html に変更した。
んで、今までの permalink が変わっちゃまずいということで entry_id -> entry_basename になる script こさえてやった。
したら、0埋め忘れたので直した。(#vag*na で feed 表示されまくってしまった。すいません >_<)
use strict; use warnings; my $mt = MT::Schema->connect('dbi:mysql:dbname', 'username', 'p4ssw0rd'); my $entries = $mt->resultset('MtEntry')->search({}, {}); while ( my $entry = $entries->next ) { printf("%s -> %s\n", $entry->entry_basename, $entry->entry_id); $entry->update({ entry_basename => scalar sprintf("%06d", $entry->entry_id) }); } package MT::Schema; use strict; use warnings; use base 'DBIx::Class::Schema::Loader'; __PACKAGE__->loader_options( relationships => 0, options => { AutoCommit => 1 }, debug => 1, components => [], ); 1;
MT なんだから Data::ObjectDriver 使えばいいとか言われてもわからない。