Puede conectarse al servidor de Postgres con explícito (my
es decir, nombre de usuario del sistema operativo) o implícito (timonin
es decir, rol en database.yml
) iniciar sesión.
Como veo tu database.yml
tiene declaración de nombre de usuario, pero solo para producción ambiente. Ejecutar pruebas de rake sin especificar el entorno de Rails las ejecutará contra el desarrollo entorno por defecto. Es por eso que tienes un error como FATAL: role "my" does not exist
.
Entonces, dependiendo de sus necesidades, debe agregar estas declaraciones a las definiciones de todas las bases de datos (test
y development
también):
username: timonin
password: <%= ENV['TIMONIN_DATABASE_PASSWORD'] %>
Después de eso, su aplicación Rails se conectará como timonin
usuario.
La lista de verificación completa es la siguiente:
- Crear rol
Aquí está SQL para PostgreSQL:
CREATE ROLE timonin LOGIN PASSWORD 'Pas$_sword'
NOINHERIT CREATEDB
VALID UNTIL 'infinity';
COMMENT ON ROLE timonin
IS 'Timonin database role for Rails app';
- Eliminar comentarios o agregar afirmaciones
username: timonin
ypassword: <%= ENV['TIMONIN_DATABASE_PASSWORD'] %>
a su archivo base de datos.yml - Corre todas las operaciones con
TIMONIN_DATABASE_PASSWORD
variable:
Aquí se cambia el comando de rake:
rake db:create TIMONIN_DATABASE_PASSWORD='Pas$_sword'
o:
rake db:create TIMONIN_DATABASE_PASSWORD='Pas$_sword' RAILS_ENV=test
para el entorno de prueba.