Friday, September 30, 2011

Re: Can't locate the database?

Does anyone know if it's possible to use multiple databases in the same project in CakePHP?  We would like to move to CakePHP, but many of our apps fall into a similar category.  Has anyone tried this before?

On Thu, Sep 29, 2011 at 3:37 PM, Fabio Batista Araujo <fbaraujo84@gmail.com> wrote:
Yves,

The cake_posts is your MySql database and what is missing, accordingly the error response, is the table posts for the model Post.

To fix it, create the table posts inside cake_posts database.

If it is not the case, you have to be sure that you application is running the correct database configuration, $cake_posts instead $default.

The simpler way to fix it is doing:

var $default = array(
        'driver' => 'mysqli',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => 'summer11',
        'database' => 'cake_posts',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

For additional help, take a look at : http://book.cakephp.org/view/922/Database-Configuration

"The $default connection array is used unless another connection is specified by the $useDbConfig property in a model. For example, if my application has an additional legacy database in addition to the default one, I could use it in my models by creating a new $legacy database connection array similar to the $default array, and by setting var $useDbConfig = 'legacy'; in the appropriate models."

Hope it helped you,
Fábio


2011/9/29 Yves S. Garret <yoursurrogategod@gmail.com>
Yes.  I called the database cake_posts.  Do I set something up so that it points to that specific db?


2011/9/29 Vinícius Moraes de Araújo <vinizinmoraes@gmail.com>
You have the table posts created on your database ?

Atenciosamente,

Vinícius Moraes


2011/9/29 Yves S. Garret <yoursurrogategod@gmail.com>
By the way, this is my database.php file:

<?php
/**
 * This is core configuration file.
 *
 * Use it to configure core behaviour ofCake.
 *
 * PHP versions 4 and 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       cake
 * @subpackage    cake.app.config
 * @since         CakePHP(tm) v 0.2.9
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */
/**
 * In this file you set up your database connection details.
 *
 * @package       cake
 * @subpackage    cake.config
 */
/**
 * Database configuration class.
 * You can specify multiple configurations for production, development and testing.
 *
 * driver => The name of a supported driver; valid options are as follows:
 *        mysql         - MySQL 4 & 5,
 *        mysqli         - MySQL 4 & 5 Improved Interface (PHP5 only),
 *        sqlite        - SQLite (PHP5 only),
 *        postgres    - PostgreSQL 7 and higher,
 *        mssql        - Microsoft SQL Server 2000 and higher,
 *        db2            - IBM DB2, Cloudscape, and Apache Derby (http://php.net/ibm-db2)
 *        oracle        - Oracle 8 and higher
 *        firebird    - Firebird/Interbase
 *        sybase        - Sybase ASE
 *        adodb-[drivername]    - ADOdb interface wrapper (see below),
 *        odbc        - ODBC DBO driver
 *
 * You can add custom database drivers (or override existing drivers) by adding the
 * appropriate file to app/models/datasources/dbo.  Drivers should be named 'dbo_x.php',
 * where 'x' is the name of the database.
 *
 * persistent => true / false
 * Determines whether or not the database should use a persistent connection
 *
 * connect =>
 * ADOdb set the connect to one of these
 *    append it '|p' for persistent connection. (mssql|p for example, or just mssql for not persistent)
 * For all other databases, this setting is deprecated.
 *
 * host =>
 * the host you connect to the database.  To add a socket or port number, use 'port' => #
 *
 * prefix =>
 * Uses the given prefix for all the tables in this database.  This setting can be overridden
 * on a per-table basis with the Model::$tablePrefix property.
 *
 * schema =>
 * For Postgres and DB2, specifies which schema you would like to use the tables in. Postgres defaults to
 * 'public', DB2 defaults to empty.
 *
 * encoding =>
 * For MySQL, MySQLi, Postgres and DB2, specifies the character encoding to use when connecting to the
 * database.  Uses database default.
 *
 */
class DATABASE_CONFIG {

    var $default = array(
        'driver' => 'mysqli',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => 'summer11',
        'database' => 'mysql',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

    var $cake_posts = array(
        'driver' => 'mysqli',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => 'summer11',
        'database' => 'cake_posts',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

    var $doc_lookup = array(
        'driver' => 'mysqli',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => 'summer11',
        'database' => 'doc_lookup',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

    var $test = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'user',
        'password' => 'password',
        'database' => 'test_database_name',
        'prefix' => '',
        //'encoding' => 'utf8',
    );
}


---------- Forwarded message ----------
From: Yves S. Garret <yoursurrogategod@gmail.com>
Date: Thu, Sep 29, 2011 at 2:02 PM
Subject: Can't locate the database?
To: cake-php@googlegroups.com


I got to the following portion of the tutorial:



At the very end of the tutorial I have the impression that I can proceed to view at least some fruits of my labor.  However, when I went to:


Cakery being where Cake resides, I get the following error... why?  


Missing Database Table

Error: Database table posts for model Post was not found.

Notice: If you want to customize this error message, create app\views\errors\missing_table.ctp


--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.
 
 
To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.
 
 
To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.
 
 
To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.
 
 
To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.
 
 
To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

No comments: