2012-02-02 1 views
1

Почему я получаю сообщение об ошибке?ORLite: Почему я получаю сообщение об ошибке «Не удается найти метод объекта» создать «через пакет ...»

#!/usr/bin/env perl 
use warnings; 
use 5.012; 

use ORLite { 
    package  => 'My::ORM', 
    file  => 'sqlite_test.db', 
    create  => sub { 
     my $dbh = shift; 
     $dbh->do('CREATE TABLE user (name TEXT NOT NULL, age INTEGER)'); 
    }, 
}; 

say My::ORM::User->table; 

my $user = My::ORM::User->create(name => 'Alpha', age => 23,); 

Выход:

user 
Can't locate object method "create" via package "My::ORM::User" at ./perl1.pl line 16. 

ответ

3

Вы пытаетесь использовать метод, который доступен только для таблиц, имеющих первичный ключ.

Закрепить запрос создания, и это будет работать:

$dbh->do('CREATE TABLE user (name TEXT PRIMARY KEY, age INTEGER)'); 
#          ^^^^^^^^^^^ 

 Смежные вопросы

  • Нет связанных вопросов^_^