有没有办法与厨师一起运行'cake schema create'?

时间:2012-05-12 18:04:48

标签: php mysql cakephp chef 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
  command "/vagrant/cakephp/lib/Cake/Console/cake schema create -app /vagrant/cakephp/app"
end

但是'蛋糕模式创建'任务需要用户干预(即,如果用户确实想要删除所有表并重新创建它们,它会提示用户)。 2011年底开了this issue,但它看起来不像是在哪里......

有没有办法配置厨师与脚本互动?

如果没有,有什么方法可以通过CakePHP解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

目前无法通过CakePHP执行此操作。但是,您可以通过在脚本中输入一系列答案来绕过它。我找到了答案here

如果您想对每个提示回复'y',您可以使用:

echo 'y' | cake schema create

如果您只想使用默认值,可以使用:

printf "\n\n" | cake schema create

如果您想使用特定的回复,可以列出它们,用换行符分隔。这将发送'y'然后'n',删除表,而不是重新创建它们:

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