Php 有没有办法运行';蛋糕模式创建';和厨师?

Php 有没有办法运行';蛋糕模式创建';和厨师?,php,mysql,cakephp,chef-infra,vagrant,Php,Mysql,Cakephp,Chef Infra,Vagrant,我正在使用Vagrant+Chef Solo建立一个CakePHP应用程序。我希望能够在我的配方中调用“cake schema create”来创建数据库模式。我已将以下内容添加到默认配方中: execute "create-db" do command "mysql -u root -p#{node[:mysql][:server_root_password]} -e 'CREATE DATABASE cakephp;'" end execute "load-db-schema" do

我正在使用Vagrant+Chef Solo建立一个CakePHP应用程序。我希望能够在我的配方中调用“cake schema create”来创建数据库模式。我已将以下内容添加到默认配方中:

execute "create-db" do
  command "mysql -u root -p#{node[:mysql][:server_root_password]} -e 'CREATE DATABASE cakephp;'"
end

execute "load-db-schema" do
  command "/vagrant/cakephp/lib/Cake/Console/cake schema create -app /vagrant/cakephp/app"
end
但是“cake schema create”任务需要用户干预(即,如果用户确实想要删除所有表并重新创建它们,它会提示用户)。这家店是在2011年底开业的,但看起来它哪儿也去不了

有没有办法配置chef与脚本交互


如果没有,有没有办法用CakePHP解决这个问题?

目前没有办法用CakePHP解决这个问题。但是,您可以通过在脚本中输入一系列答案来绕过它。我找到了答案

如果要对每个提示回答
'y'
,可以使用:

echo 'y' | cake schema create
printf "\n\n" | cake schema create
如果您只想使用默认值,可以使用:

echo 'y' | cake schema create
printf "\n\n" | cake schema create
如果要使用特定的响应,可以列出它们,并用换行符分隔。这将发送
'y'
,然后发送
'n'
,删除表,而不重新创建它们:

printf "y\nn\n" | cake schema create