【问题标题】:Bake tool cannot see tables in SQLite3 database烘焙工具看不到 SQLite3 数据库中的表
【发布时间】: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


【解决方案1】:

尝试将完整路径放入您的数据库配置中,这就是我在我的应用程序中所做的:

<?php
define('DEFAULT_DB', TMP.'db'.DS.'main.db3');

class DATABASE_CONFIG {
    public $default = array(
        'datasource' => 'Database/Sqlite',
        'persistent' => false,
        'host' => '',
        'database' => DEFAULT_DB,
        'encoding' => 'utf8',
    );
}

【讨论】:

  • 感谢您的帮助。我接受了你的回答,一旦我有足够的声誉,我会回来投票。
  • @JohanA.:谢谢,很高兴能帮上忙;)
  • 目前在 Windows 上进行原型设计,CakePHP 3.8,路径最终看起来像这样:'database' => 'C:\Users\Me\Downloads\phptest\app\webroot\test.db', . ..没有这个,我得到了和OP一样的结果。
猜你喜欢
  • 2011-08-19
  • 1970-01-01
  • 2016-05-03
  • 1970-01-01
  • 2011-12-18
  • 1970-01-01
  • 2018-08-25
  • 2015-03-18
  • 1970-01-01
相关资源
最近更新 更多