PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

FATAL:akar peran tidak ada

Anda dapat terhubung ke server Postgres dengan eksplisit (my yaitu nama pengguna OS) atau implisit (timonin yaitu peran dalam database.yml ) masuk.

Seperti yang saya lihat database.yml . Anda memiliki pernyataan nama pengguna, tetapi hanya untuk produksi lingkungan. Menjalankan tes rake tanpa menentukan lingkungan Rails akan menjalankannya melawan pengembangan lingkungan secara default. Itu sebabnya Anda memiliki kesalahan seperti FATAL: role "my" does not exist .

Jadi tergantung pada kebutuhan Anda, Anda harus menambahkan pernyataan ini ke semua definisi basis data (test dan development juga):

  username: timonin
  password: <%= ENV['TIMONIN_DATABASE_PASSWORD'] %>

Setelah itu aplikasi Rails Anda akan terhubung sebagai timonin pengguna.

Daftar periksa lengkapnya adalah sebagai berikut:

  • Buat peran

Berikut adalah SQL untuk PostgreSQL:

CREATE ROLE timonin LOGIN PASSWORD 'Pas$_sword'
  NOINHERIT CREATEDB
   VALID UNTIL 'infinity';
COMMENT ON ROLE timonin
  IS 'Timonin database role for Rails app';
  • Batalkan komentar atau tambahkan pernyataan username: timonin dan password: <%= ENV['TIMONIN_DATABASE_PASSWORD'] %> ke file database.yml Anda
  • Lari semua operasi dengan TIMONIN_DATABASE_PASSWORD variabel:

Berikut perintah rake yang diubah:

rake db:create TIMONIN_DATABASE_PASSWORD='Pas$_sword'

atau:

rake db:create TIMONIN_DATABASE_PASSWORD='Pas$_sword' RAILS_ENV=test

untuk lingkungan pengujian.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pangkas spasi tambahan dengan PostgreSQL

  2. Cara menemukan waktu mulai gratis pertama dari reservasi di Postgres

  3. Bagaimana cara menjalankan banyak kueri menggunakan perintah psql dari bash shell?

  4. AssertionError:koneksi database tidak diatur ke UTC

  5. Postgres GABUNG dengan unnest