Load and Save data in yaml file in capistrano


#1

Hi All,

I tried to request user to input username and password for the database
when deploy, therefore, in my capistrano task, I

task :create_database_user do
  @username = Capistrano::CLI.password_prompt('mysql_username: ')
  @password = Capistrano::CLI.password_prompt('mysql_password: ')


  #@config = YAML::load( File.open(

“#{release_path}/config/config.yml”))[‘production’]
@config[“username”] = @username
@config[“password”] = @password

end

However, File not found error occurs.

Actually, I want to save the input in the .yml file so that I can access
them before restart in the database.yml.

Or, Can I save the cap input into the database.yml directly before
restart?

How can I do that?

Thanks much!
Arthur


#2

Did you mean
“#{release_path}/config/database.yml”

instead of
“#{release_path}/config/config.yml”

On Feb 16, 8:02 am, Arthur C. removed_email_address@domain.invalid


#3

Jeff Emminger wrote:

Did you mean
“#{release_path}/config/database.yml”

instead of
“#{release_path}/config/config.yml”

On Feb 16, 8:02�am, Arthur C. removed_email_address@domain.invalid

Yes and no. I wanna update the database.yml. But the main reason I do
this task is to protect the password, so I should not write anything
there. Instead, I wanna create an object to hold the MYSQL login and put
it in the database.yml:

development:
adapter: mysql
database: arthur_dev
username: <%= username %>
password: <%= password %>

The problem is in Capistrano that I don’t know how to retrieve the
password from Capistrano
“Capistrano::CLI.password_prompt('mysql_username: ')”.

Thanks much!
Arthur