普段から良く使うんでメモ。 DBとかにユニークな値を突っ込む時とかにランダム文字列生成とかよくあること。 で、Perlでランダム文字列を生成しようと思ったらString::Randomがオススメ。 色々作り方があるんだけど一番便利なのはrandregexメソッド。 use String::Random; my $rand_str = String::Random->new->randregex('[A-Za-z0-9]{32}'); こんな感じで正規表現が指定できるので上記のように書くと32桁の英数字でランダムな文字列を生成してくれる。 ちなみにDBに突っ込む目的ならDBIx::Class::RandomStringColumnsってのがString::Randam使用して勝手に突っ込んでくれたりするので便利だったりする。
舌足らずすぎた。 Model::DBIC: connect_info: - dbi:mysql:table - root - on_connect_do: - SET NAMES utf8 cursor_class: DBIx::Class::Cursor::Cached cache_file: __path_to(tmp/query_cache)__ さっきはこんなconfigで使った場合のコードです。 すばらしすぎる。もっと早く使えばよかったとおもった。 Catalyst::Model::DBIC::Schema で使う場合はこんな感じでOK。 sub new { my $self = shift->NEXT::new(@_); my $cache = Cache::FastMmap->new( share_file => $self->{cache_file} ); $self->s
WARNING: DBIx::Class::StartupCheck: This version of Perl is likely to exhibit extremely slow performance for certain critical operations. Please consider recompiling Perl. For more information, see https://bugzilla.redhat.com/show_bug.cgi?id=196836 and/or http://lists.scsys.co.uk/pipermail/dbix-class/2007-October/005119.html. You can suppress this message by setting DBIC_NO_WARN_BAD_PERL=1 in your
If you want a somewhat pretty picture of your DBIC schema (with relationships drawn, of course), install GraphViz, SQL::Translator, and DBICx::Deploy from the CPAN, and then run: $ dbicdeploy -Ilib MyApp::Schema ~/graphs GraphViz ~/graphs will then contain a .sql file that is actually a png of your schema. Rename it and see your schema in your favorite png viewing application. Oh yeah, the post ne
Perl, singletons, DAOs oh my! Lately I have been toying with Wicket , Hibernate and Spring for potentially writing a large complex site. Contrary to what people say about Java web development it isn't so bad, at least with Wicket. Since toying with Hibernate and DAOs, I came to the conclusion this can work really well in Catalyst! Instead of micromanaging what to page cache, just cache the specifi
[For instructions on the installation of Catalyst, please see the Catalyst Manual page on installation.] This is an attempt at introducing DBIx::Class and using it in Catalyst, so you can be familiar with it enough to start using it. Understanding ORM First, you'll need to understand the purpose of Object-relational mapping. It is what DBIx::Class is. To quote the wikipedia.org page: Object-Relati
NAME DBIx::Class::QueryLog - Log queries for later analysis. VERSION version 1.005001 SYNOPSIS DBIx::Class::QueryLog 'logs' each transaction and query executed so you can analyze what happened in the 'session'. It must be installed as the debugobj in DBIx::Class: use DBIx::Class::QueryLog::NotifyOnMax; use DBIx::Class::QueryLog::Analyzer; my $schema = ... # Get your schema! my $ql = DBIx::Class::Q
Months ago I implemented DBIx::Class::Storage::Statistics with the intent of making some sort of profiling tool. I finally got off my ass and did it. DBIx::Class::QueryLog should be on CPAN this weekend. At $work we are replacing a legacy system with one based on Catalyst. One of the deliverables for this year is a new order entry application. Since our customer service folks are used to working i
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
アプリを作ってると色々ログ系をDBに保存しておきたかったりするのですが、 ログテーブルって結構でかくなってしまう運命です。 DBによってはテーブルサイズがでかくなると検索効率が落ちてしまったり ちょくちょく問題になってしまうのですが、 ログテーブルを年月ごととかで分割すると結構さくさく扱えたりします。 ただ、普通にDBIC使ってると分割したログテーブル毎にスキーマを用意する必要が でてきてしまうです。 例えば access_logってテーブルがあるとして、これを年月で分割して保存させるばやい、 access_log : Proj::Schema::AccessLog access_log_200706 : Proj::Schema::AccessLog200706 access_log_200707 : Proj::Schema::AccessLog200707 access_log_20
NAME DBIx::Class::Cursor::Cached - cursor class with built-in caching support SYNOPSIS my $schema = SchemaClass->connect( $dsn, $user, $pass, { cursor_class => 'DBIx::Class::Cursor::Cached' } ); $schema->default_resultset_attributes({ cache_object => Cache::FileCache->new({ namespace => 'SchemaClass' }), }); my $rs = $schema->resultset('CD')->search(undef, { cache_for => 300 }); my @cds = $rs->all
NAME Catalyst::Plugin::DBIC::Schema::Profiler - Profile time query took with DBIC::Schema in your Catalyst application. SYNOPSIS # MyApp.pm use Catalyst qw/ ... DBIC::Schema::Profiler # Load this plugin. ... /; # myapp.yml DBIC::Schema::Profiler: MODEL_NAME: DBIC DESCRIPTION This plugin is only active in -Debug mode. AUTHOR Ryuzo Yamamoto, <ryuzo.yamamoto@gmail.com> SEE ALSO Catalyst::Plugin::DBIC
Mapping database relations into objects Tables (relations) map onto classes Rows (tuples) map onto objects Columns (attributes) map onto attributes Don't write SQL Select the id and name from this table Select all the details of this row Select something about related tables Update this row with these values Insert a new record with these values Delete this record
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く