データベースと DBIx:Class は初めてです。これが完全な初心者のせいである場合は、ご容赦ください。チュートリアルに従っただけで、スキーマをデータベースにデプロイしようとしました。チュートリアルによると、モジュールをいくつかのファイルに分割しました。createTable.pl 'mysqlshow bla' を実行すると、空のデータベースが表示されます。
データベースは稼働中です。mysql CREATE TABLE ステートメントによるテーブルの作成は機能します。
スキーマ ../createTable.pl に従ってテーブルを作成するスクリプト ファイル
#!/usr/bin/env perl
use Modern::Perl;
use MyDatabase::Main;
my ($database, $user) = ('bla', 'flo');
my $schema = MyDatabase::Main->connect("dbi:mysql:dbname=$database", "$user");
$schema->deploy( { auto_drop_tables => 1 } );
名前空間をロードするための Main.pm ../MyDatabase/Main.pm
package MyDatabase::Main;
use base qw/ DBIx::Class::Schema /;
__PACKAGE__->load_namespaces();
1;
テーブルのスキーマ ファイル ../MyDatabase/Result/Album.pm
package MyDatabase::Main::Result::Album;
use base qw/ DBIx::Class::Core /;
__PACKAGE__->load_components(qw/ Ordered /);
__PACKAGE__->position_column('rank');
__PACKAGE__->table('album');
__PACKAGE__->add_columns(albumid =>
{ accessor => 'album',
data_type => 'integer',
size => 16,
is_nullable => 0,
is_auto_increment => 1,
},
artist =>
{ data_type => 'integer',
size => 16,
is_nullable => 0,
},
title =>
{ data_type => 'varchar',
size => 256,
is_nullable => 0,
},
rank =>
{ data_type => 'integer',
size => 16,
is_nullable => 0,
default_value => 0,
}
);
__PACKAGE__->set_primary_key('albumid');
1;
Google でヘルプを探すのにすでに数時間を費やしましたが、 deploy() メソッドに関連するものはあまりありません。誰かが私の間違いを説明できますか? ありがとうございました