0

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年後半にこの問題が開かれましたが、どこにも行かないようです...

スクリプトと対話するようにシェフを構成する方法はありますか?

そうでない場合、CakePHP でこれを回避する方法はありますか?

4

1 に答える 1

1

現在、CakePHP でこれを行う方法はありません。ただし、一連の回答をスクリプトにパイプすることで回避できます。ここで答えを見つけました。

すべてのプロンプトに答えたい場合は'y'、次を使用できます。

echo 'y' | cake schema create

デフォルトを使用するだけの場合は、次を使用できます。

printf "\n\n" | cake schema create

特定の応答を使用する場合は、改行文字で区切ってリストできます。これにより、送信さ'y'れてから'n'、テーブルが削除され、再作成されません。

printf "y\nn\n" | cake schema create
于 2012-05-23T04:00:11.630 に答える