|
Модераторы: korob2001, ginnie |
|
Marlik |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Здравствуйте люди. Пытаюсь скрестить Mojo и SQLite, делаю так:
Создаю базу, образец отсюда - http://pragmaticperl.com/issues/06/pragmat...0%B0%D1%85.html sqlite3 blog.db < blog.sql Создаю схему: dbicdump -o dump_directory=./lib -o components='["InflateColumn::DateTime"]' Schema dbi:SQLite:./dump/blog.db Проверил, всё физически имеется и база и схема. В MyApp: use Schema; has schema => sub { return Schema->connect('dbi:SQLite:' . ($ENV{BLOG_DB} || './dump/blog.db')); }; В startup: $self->helper(db => sub { $self->app->schema }); Пытаюсь инсёртить в базу из контроллера: my $self = shift; my ($title, $body, $tags) = @{$self->req->params->to_hash}{ 'title', 'body', 'tags' }; my $result = $self->db->resultset('Post')->create({ title => '$title', post => '$body', tags => '$tags' }); Получаю ошибку что таблицы posts нету. Но она присутствует! DBIx::Class::Storage::DBI::_prepare_sth(): DBI Exception: DBD::SQLite:b prepare_cached failed: no such table: posts [for Statement "INSERT INTO posts ( post, tags, title) VALUES ( ?, ?, ? )"] at /var/www/myapp/script/../lib/MyApp/Controller/Blog.pm line 23 Подскажите куда двигаться? Спасибо. |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: -1 Всего: 16 |
Почему Вы так думаете? |
|||
|
||||
Marlik |
|
||||
Бывалый Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Потому что есть дамп blog.sql, вот он: CREATE TABLE authors ( authorid INTEGER PRIMARY KEY AUTOINCREMENT, author VARCHAR(255) UNIQUE, pass VARCHAR(255), type INTEGER ); CREATE TABLE posts ( postid INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, post TEXT, tags TEXT, postime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, authorid REFERENCES authors(authorid) ); CREATE TABLE comments ( commentid INTEGER PRIMARY KEY AUTOINCREMENT, comment TEXT, comtime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, authorid REFERENCES authors(authorid), postid REFERENCES posts(postid) ); Потом командой sqlite3 blog.db < blog.sql создаю базу, я её вижу, могу открыть и посмотреть... как-то так. Спасибо. |
||||
|
|||||
noize |
|
|||
5.18.2 Профиль Группа: Участник Сообщений: 89 Регистрация: 10.7.2010 Где: СПб Репутация: нет Всего: 3 |
Напишите структуру вашего проекта, где лежит файл .db, где лежат перловые модули. Работать с относительными директориями - плохая практика, не факт, что у моджо где-то внутри не вызывается команда chdir
|
|||
|
||||
Marlik |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Структура моджо стандартная, где лежит дамп и куда поставилась Shema видно выше в посте.
|
|||
|
||||
noize |
|
||||
5.18.2 Профиль Группа: Участник Сообщений: 89 Регистрация: 10.7.2010 Где: СПб Репутация: нет Всего: 3 |
если папка dump лежит в корневой директории моджо-проекта, т.е. на одном уровне с папками lib, public, template и т.д., то абсолютный путь к файлу .db можно получить вот так:
и уже дальше использовать его в подключении к бд:
|
||||
|
|||||
Marlik |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Фишка вся в том, что, когда я меняю путь к базе, выскакивает ошибка, что мол базы нет. Открывал вручную базу в sqlite3 нормально видит базу, показывает структуру. Попробую ещё раз с нуля. И да, у вас ошибка.
Это сообщение отредактировал(а) Marlik - 24.5.2015, 12:15 |
|||
|
||||
Marlik |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Проблема из-за того что я всё делал из под рута. Век живи, век учись.
Это сообщение отредактировал(а) Marlik - 26.5.2015, 16:07 |
|||
|
||||
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |