Saya mengalami masalah serupa ketika mengatur aplikasi Rails baru dengan Postgresql. Saya mendapat pesan kesalahan berikut di bawah
FATAL: role "promisepreston" does not exist
Couldn't create 'MyBlog_development' database. Please check your configuration.
rails aborted!
ActiveRecord::NoDatabaseError: FATAL: role
Caused by:
PG::ConnectionBad: FATAL: role "promisepreston" does not exist
Untuk mengatasinya cukup ikuti solusi di bawah ini
Pertama, kita perlu login ke akun pengguna postgres melalui antarmuka baris perintah;
sudo su - postgres
Selanjutnya, sambungkan ke server database menggunakan klien psql, sebagai peran postgres:
psql -U postgres
Selamat datang di psql 10.6, terminal interaktif PostgreSQL.
[email protected]:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help
postgres=#
Selanjutnya, terhubung dengan klien psql, kami akan membuat peran dengan nama peran yang kami inginkan yang memiliki atribut LOGIN dan sandi yang kita inginkan , dan yang dapat membuat database dan mengelola peran (T/B: Tolong jangan ketik ini postgres=# , karena ini adalah placeholder):
postgres=# create role rolename with createdb login password 'password1';
Perhatikan tanda titik koma tambahan (; ) yang diperlukan di akhir pernyataan SQL. Tanda kutip tunggal ( ‘ ‘ ) bukan merupakan bagian dari kata sandi, tetapi harus menyertakannya.
Apa itu bekerja? Anda dapat memeriksa menggunakan perintah \du (N/B: Tolong jangan ketik ini postgres=# , karena ini adalah placeholder):
postgres=# \du
Anda sekarang dapat menjalankan perintah untuk membuat database untuk aplikasi Rails Anda;
rails db:create
Dan kemudian jalankan juga perintah untuk memigrasikan database untuk aplikasi Rails Anda;
rails db:migrate
Itu saja.
Saya harap ini membantu