5

He seguido este tutorial muy útil:¿Cómo puedo crear un usuario y base de datos de Postgres cada vez que creo una nueva aplicación de rieles?

http://blog.willj.net/2011/05/31/setting-up-postgresql-for-ruby-on-rails-development-on-os-x/

Realmente me gustaría correr rails new myapp y tienen los postgres DB establecen automáticamente. ¿Hay alguna manera de hacerlo con un Rails application template o algo similar?

+0

supongo que podría crear un usuario y una base de datos que utilizo para todas mis pequeñas aplicaciones de prueba. Sin embargo, para cosas más grandes obviamente quiero bases de datos separadas. –

Respuesta

14

En un sistema basado en UNIX:

sudo -u postgres createuser -d -R -P APPNAME 
sudo -u postgres createdb -O APPNAME APPNAME 

Se puede crear un guión y ponerlo en algún lugar en tu $ PATH si usted no puede recordar.

+1

No debería necesitar sudo para esos comandos, solo una cuenta de "superusuario" para la base de datos de Postgres. –

+5

Solo por completarlo, 'createuser -d -R -P creará un usuario que puede crear un db (-d), no puede crear un rol (-R) y solicitar contraseña (-P)' http://www.postgresql.org/docs/9.1/static/app-createuser.html 'createdb -O creará un db con el propietario especificado (-O)' http: //www.postgresql. org/docs/9.1/static/app-createdb.html – zznq

8

En realidad, no es necesario crear un nuevo usuario cada vez que crea una nueva aplicación de rieles.

Todo lo que tiene que hacer es crear la nueva aplicación y cambiar la username en su database.yml

development: 
    adapter: postgresql 
    encoding: unicode 
    database: newapp_development 
    pool: 5 
    username: #your username 
    password: 
... 

que simplemente:

rake db:create:all 
+0

Gracias por eso. No me di cuenta de eso. ¿Hay alguna forma de personalizar el archivo database.yml a medida que se crea? Sé que son dos segundos para cambiarlo, pero me gusta poder probar diferentes ideas rápidamente. –

+1

Puede crear una plantilla de base de datos ... No lo he intentado todavía, pero hay un [railscast] (http://railscasts.com/episodes/148-app-templates-in-rails-2-3) acerca de eso. – gabrielhilal

+0

Muy buen screencast. Quiero crear un archivo template.rb con ''config/database.yml ', % Q {cosas para database.yml aquí}' Sin embargo, necesito poner el nombre de la aplicación en el archivo template.rb. ¿Es eso posible? –

Cuestiones relacionadas