【发布时间】:2013-02-10 21:18:58
【问题描述】:
我正在尝试使用 SQLite3 作为数据库,使用 CakePHP 2.1.1 构建一个简单的应用程序。为了节省时间,我尝试使用烘焙工具为下表创建模型:
CREATE TABLE animals (
id integer primary key autoincrement,
name text
);
但是烘焙工具返回以下错误:Your database does not have any tables.
我发现 Cake 在连接数据库时遇到了问题,所以我自己创建了合适的模型、控制器和视图。我在动物表中插入了一条记录。它奏效了。
我在网上搜索后一无所获。要么没有人尝试在 SQLite3 数据库上使用烘焙工具,要么我运气不好。
有人有什么想法吗?
更新
这是cake bake的输出:
johan@ubuntu:~/php/app$ Console/cake bake model
Welcome to CakePHP v2.1.1 Console
---------------------------------------------------------------
App : app
Path: /home/johan/php/app/
---------------------------------------------------------------
---------------------------------------------------------------
Bake Model
Path: /home/johan/php/app/Model/
---------------------------------------------------------------
Your database does not have any tables.
和配置文件:
<?php
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Sqlite',
'persistent' => false,
'host' => 'localhost',
'database' => 'cake',
);
}
数据库文件位于~/php/app/webroot/cake
【问题讨论】:
-
您检查日志文件是否有任何错误?当你输入
cake bake model时会发生什么,它会给你任何错误吗?您是否 100% 确定可以通过 cake 访问您的数据库? -
我检查了 CakePHP 和 Apache 的日志文件,没有发现任何异常。
cake bake model也不会出错。它继续告诉我数据库没有任何表。我 100% 确定可以从我的 CakePHP 应用程序中访问数据库,因为我能够插入记录。 -
您是在您的应用程序文件夹中还是在其他地方运行
cake bake?你的 Config/database.php 是什么样的?你把你的数据库放在哪里了? -
我会用你的答案更新我的问题。不过,我很好奇,您是否曾经能够从 SQLite3 数据库中烘焙模型?
-
我有,而且有效。你的设置很奇怪。首先,将数据库放在 webroot 中存在相当大的安全风险,您可能需要重新考虑这一点。其次,尝试将配置中的数据库参数设置为完整路径。如果这不起作用,我们将不得不进一步调查:)
标签: cakephp sqlite cakephp-2.1 cakephp-bake