Cake Console 2.2.1: Errores de horneado

Máquina OSX ejecutando MAMP. CakePHP 2.2.1 instalado y configurado correctamente (lo que significa que tengo todas las barras verdes cuando navego por el archivo Index.php, he completado el tutorial de Blogs y estoy trabajando en mi segunda aplicación con la que está funcionando el andamio). Ahora estoy tratando de hornear por primera vez.

Según el libro de cocina (y otros), instalé una copia nueva de pastel en un directorio (mi directorio de usuarios) y luego puse la variable de ruta en mi archivo .bash_profile export PATH="$PATH:/Users/p_scott/cake221/app/Console" después de lo cual pude entrar en la Terminal, escribir cake y hacer que la consola aparezca. Puedes ver que hasta ese momento, estaba invocando la consola desde el directorio de la aplicación.

Primero intenté ejecutar cake bake desde la terminal usando el parámetro -app y designando la ruta a mis aplicaciones de práctica. La primera vez que hice esto, obtuve lo siguiente

  Welcome to CakePHP v2.2.1 Console ------------- App : app Path: /Applications/MAMP/htdocs/blog/app/ ------------- Interactive Bake Shell --------------- [D]atabase Configuration [M]odel [V]iew [C]ontroller [P]roject [F]ixture [T]est case [Q]uit What would you like to Bake? (D/M/V/C/P/F/T/Q) > c -------------------- Bake Controller Path: /Applications/MAMP/htdocs/blog/app/Controller/ -------------------- \Use Database Config: (default/test) [default] > 

No importa lo que ingrese para la base de datos (si la dejo en blanco, me vuelve a preguntar), cualquier respuesta me da el siguiente error:

  Warning Error: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in [/Users/p_scott/cake221/lib/Cake/Model/Datasource/Database/Mysql.php, line 149] Error: Database connection "SQLSTATE[HY000] [2002] No such file or directory" is missing, or could not be created. #0 /Users/p_scott/cake221/lib/Cake/Model/Datasource/DboSource.php(260): Mysql->connect() #1 /Users/p_scott/cake221/lib/Cake/Model/ConnectionManager.php(101): DboSource->__construct(Array) #2 /Users/p_scott/cake221/lib/Cake/Console/Command/Task/ModelTask.php(906): ConnectionManager::getDataSource('default') #3 /Users/p_scott/cake221/lib/Cake/Console/Command/Task/ControllerTask.php(396): ModelTask->getAllTables('default') #4 /Users/p_scott/cake221/lib/Cake/Console/Command/Task/ControllerTask.php(419): ControllerTask->listAll(NULL) #5 /Users/p_scott/cake221/lib/Cake/Console/Command/Task/ControllerTask.php(136): ControllerTask->getName() #6 /Users/p_scott/cake221/lib/Cake/Console/Command/Task/ControllerTask.php(61): ControllerTask->_interactive() #7 /Users/p_scott/cake221/lib/Cake/Console/Command/BakeShell.php(113): ControllerTask->execute() #8 /Users/p_scott/cake221/lib/Cake/Console/Shell.php(393): BakeShell->main() #9 /Users/p_scott/cake221/lib/Cake/Console/ShellDispatcher.php(201): Shell->runCommand(NULL, Array) #10 /Users/p_scott/cake221/lib/Cake/Console/ShellDispatcher.php(69): ShellDispatcher->dispatch() #11 /Users/p_scott/cake221/app/Console/cake.php(33): ShellDispatcher::run(Array) #12 {main} 

Una vez que empecé a recibir este error, intenté navegar en la terminal a la carpeta /app/Console y la /app/Console para probar la consola desde mi aplicación / s. O recibo los mismos errores o me hace preguntas diferentes, como:

  What is the path to the project you want to bake? [/Users/p_scott/myapp] > /Applications/MAMP/htdocs/history/app What is the path to the directory layout you wish to copy? [/Applications/MAMP/htdocs/history/lib/Cake/Console/Templates/skel] > 

PHP CLI está instalado y parece estar funcionando

  PHP 5.3.8 (cli) (built: Dec 5 2011 21:24:09) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies 

Mi soporte PDO parece estar habilitado. En la terminal escribí:

  php --ri pdo PDO PDO support => enabled PDO drivers => mysql, sqlite, sqlite2 

No tengo un archivo php.ini en Apache (porque estoy en una Mac), pero el que está en el directorio PHP 5.36, tengo las siguientes extensiones habilitadas:

  extension=imap.so extension=yaz.so extension=mcrypt.so extension=gettext.so extension=pgsql.so extension=pdo_pgsql.so extension=pdo_mysql.so 

Después de tomar un descanso, encontré un artículo (http://www.dereuromark.de/2011/10/31/freshly-baked-cake2-0-tips/) que habla sobre un cambio de ubicación de la consola en 2.0. Debería intentar usarlo desde esa ubicación ( /lib/Cake/Console ). Una vez que probé esto, o recibí las preguntas sobre qué diseño quería usar o … UNA VEZ, pude obtener la aplicación de cocción para pedirme que creara una configuración de base de datos. Pasé por los pasos y este error apareció al final:

Fatal error: Class 'DATABASE_CONFIG' not found in /Applications/MAMP/htdocs/history/lib/Cake/Console/Command/Task/DbConfigTask.php on line 264

Lo que me lleva a una pieza más de información. Esta es mi configuración de base de datos predeterminada en el archivo /history/app/Config/database.php .

  class DATABASE_CONFIG { public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'cakeHistoryUser', 'password' => 'cakeHistoryPassword', 'database' => 'cake_history', 'prefix' => '', //'encoding' => 'utf8', ); 

Antes de publicar esta pregunta (y toda esta información), dedico un tiempo de calidad y parece que la mayoría de mis problemas están relacionados con la CLI, pero simplemente no veo dónde necesito cambiar algo y horas y horas después. Necesito algo de ayuda.

Ayúdame Obi Wan, eres mi única esperanza

Solutions Collecting From Web of "Cake Console 2.2.1: Errores de horneado"

El problema es que está tratando de interactuar con la base de datos a través de la línea de comandos, sin embargo, la CLI de PHP es una instalación diferente a la que MAMP ha demostrado, por lo que no conoce el servidor de la base de datos.

Intenta cambiar localhost a 127.0.0.1 en tu app/Config/database.php y eso debería funcionar.

Algo así me sucedió a mí, y la forma más fácil que encontré para hacerlo funcionar, que no veo aquí es cambiar localhost a 127.0.0.1 y agregar el número de puerto al final, por ejemplo, MAMP usa el número de puerto 8899, así que:

“mysql: host = 127.0.0.1: 8889”