я новичок в базах данных и в 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(). Может ли кто-нибудь объяснить мне, в чем моя ошибка? Спасибо