mysql ruby-on-rails svn

mysql - Cómo administrar Rails database.yml



ruby-on-rails svn (5)

Primero, mueva database.yml a un archivo de plantilla.

Si estás en Git:

git mv config/database.yml config/database.yml.example git commit -m "moved database.yml to an example file"

O, si estás en Subversion:

svn move config/database.yml config/database.yml.example svn ci -m "moved database.yml to an example file"

En segundo lugar, ignore la versión .yml.

Si estás en Git:

cat > .gitignore config/database.yml git add .gitignore git commit -m "ignored database.yml"

Si estás en Subversion:

svn propset svn:ignore config "database.yml"

Tercero, instala ¿Dónde está tu database.yml, amigo? :

script/plugin install git://github.com/technicalpickles/wheres-your-database-yml-dude

Ese complemento alerta a los desarrolladores antes de que se ejecuten las tareas de Rake si no han creado su propia versión local de config/database.yml .

En cuarto lugar, configure una tarea de implementación de Capistrano:

# in RAILS_ROOT/config/deploy.rb: after ''deploy:update_code'', ''deploy:symlink_db'' namespace :deploy do desc "Symlinks the database.yml" task :symlink_db, :roles => :app do run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml" end end

En quinto lugar, cargue la versión del servidor de database.yml:

scp config/database.yml user@my_server.com:/path_to_rails_app/shared/config/database.yml

¿Cuál es la mejor manera de manejar Rails database.yml si varias personas están trabajando en el proyecto y las ubicaciones de las bases de datos son diferentes (el socket en particular).


Además de las respuestas anteriores, escribí una tarea de rake similar a "¿Dónde está tu database.yml, amigo?", Pero que permite guardar ejemplos de plantillas de cualquier archivo de configuración. Compruébelo: https://github.com/Velid/exemplify

Como alternativa a escribir configuraciones de producción separadas y vincularlas a través de Capistrano, también sugeriría usar variables de entorno para sus credenciales:

password: <%= ENV[''PROD_DATABASE_PASSWORD''] %>

Hay muchas tools handy y ways de hacer esto disponible.


En Capistrano 3, en lugar de agregar la nueva tarea, puedes hacer lo siguiente:

set :linked_files, %w{config/database.yml}



Puede usar la propiedad svn: ignore para evitar que el archivo sea versionado.

Instrucciones aquí.