我是Rails和Ruby的新手,我试图让现有项目适用于我的环境,我使用Ubuntu 14.04和Rubymine,Rails 4.2和Ruby 2.2.0 < / p>
以下是迁移文件:
class CreatePeople < ActiveRecord::Migration
def change
create_table :people do |t|
t.string :pid, limit: 20, null: false
t.string :firstname, limit: 40, null: false
t.string :lastname, limit: 40, null: false
t.integer :age
t.string :gender, limit: 4, null: false
t.datetime :birthday
t.string :country, limit: 2
t.timestamps null: false
end
add_index :people, :firstname
add_index :people, :lastname
add_index :people, :country
add_index :people, :pid, unique: true
end
end
我的database.yml:
config=/opt/local/lib/postgresql84/bin/pg_config
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: vasco_annuaire
<<: *default
database: annuaire_test
<<: *default
database: annuaire_production
username: annuaire
password: <%= ENV['ANNUAIRE_DATABASE_PASSWORD'] %>
运行rake db:create给我
&#34;角色ferenan不存在&#34;
启动localhost:3000给出
ActiveRecord :: NoDatabaseError致命:角色&#34; ferenan&#34;不存在
摘录来源(约661号线):659 660 661 662 663 664
rescue ::PG::Error => error if error.message.include?("does not exist") raise ActiveRecord::NoDatabaseError.new(error.message, error) else raise end
我也无法通过Pg-Admin-III连接到Postgresql
server name : Postgresql
host : localhost
port : 5432
maintenance_db : postgres
username : postgres
no password
使用这些参数我收到消息:
fe_sendauth:未提供密码
我已将此行添加到我的pg_hba.conf中:
host sa all 192.168.0.nnn/32 trust
这个到我的postgresql.conf:
listen_addresses = '*'
然后运行以下命令:
sudo /etc/init.d/postgresql reload
我不知道该做什么以及如何让这些东西一起工作,但该项目确实有效,因为我的上司早些时候告诉我,不幸的是他目前无法帮我解决这个问题。想通了。非常感谢任何帮助。
答案 0 :(得分:3)
默认情况下,如果没有指定用户名,postgesql会尝试使用当前用户(在您的情况下为ferenan
)进行连接,但在vanilla安装中,不存在此类角色。
要连接到角色postgres
,请将database.yml更改为:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
username: postgres
关于Pg-Admin-III,您似乎尝试从localhost
进行连接,因此我建议您尝试将以下内容添加到pg_hba.conf
(通过md5授权信任来自localhost的请求) ):
host all all 127.0.0.1/32 trust