2012-05-12 4 views
0

저는 CakePHP 앱을 설정하기 위해 Vagrant + Chef Solo를 사용하고 있습니다. 데이터베이스 스키마를 만들기 위해 '케익 스키마 만들기'를 제 레시피에서 호출 할 수 있기를 바랍니다. 나는 내 기본 조리법에 다음을 추가했습니다 :요리사와 함께 '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

현재 CakePHP로이 작업을 수행 할 방법이 없습니다. 그러나 일련의 대답을 스크립트에 전달하여 문제를 해결할 수 있습니다. 나는 대답 here를 찾았다. 당신이 모든 프롬프트에 'y'에 대답하려면

, 당신은 사용할 수 있습니다 : 당신은 그냥 기본값을 사용하려면

echo 'y' | cake schema create 

, 당신은 사용할 수 있습니다

printf "\n\n" | cake schema create 

특정 사용하려면 응답을 줄 바꿈 문자로 구분하여 나열 할 수 있습니다. 이 경우 'y'을 보낸 다음 'n'을 보내서 테이블을 삭제하고 다시 생성하지 않습니다.

printf "y\nn\n" | cake schema create 
관련 문제