新手到Postgres,使用Rails的基本技巧,所以请耐心等待。
我将解释我如何到达我的位置的过程,以防我在此过程中出现任何问题。
我创建了一个Rails 5项目(使用实际的Git repo),一旦创建成功,我在 Gemfile 中找到了默认的gem sqlite3
。
现在,我想与Postgres合作,因此我将sqlite3
转为pg
,然后运行bundle install
。工作得很好,Rails没有抱怨。
然后,我在我的计算机上安装了Postgres(使用最新的OS X)并运行createdb testDB
。这是一个空数据库。
现在,我必须配置 database.yml 文件。在浏览了十几个链接和资源之后,我将文件的内容更改为以下内容:
default: &default
adapter: postgresql
database: testDB
username: postgres
password: password
host: localhost
port: 9057
development:
<<: *default
test:
<<: *default
production:
<<: *default
database: someOtherDB
我确定端口号是正确的,因为我手动设置它,我可以使用命令netstat -na
检查它是否正在运行。我得到以下两行:
tcp6 0 0 *.9057 *.* LISTEN
tcp4 0 0 *.9057 *.* LISTEN
现在,为了更改 postgres 的密码以确保它实际上是一个非常安全的字符串password
,我运行了以下命令:
$ sudo -u postgres psql template1
打开psql
提示符,然后运行命令:
psql (9.3.4)
Type "help" for help.
template1=# ALTER USER postgres PASSWORD 'password';
返回了:
ALTER ROLE
耶!密码已更改!现在我可以使用Postgres后端打开我的第一个有效的Rails应用程序了!
我运行bin/rails server
,我收到以下错误:
当我运行命令psql -l
时,我得到以下内容:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+--------------+----------+-------------+-------------+-------------------------------
postgres | myusername | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 |
template0 | myusername | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/myusername +
| | | | | myusername=CTc/myusername
template1 | myusername | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/myusername +
| | | | | myusername=CTc/myusername
test | myusername | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 |
testDB | myusername | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 |
(5 rows)
如果我运行psql X
(其中X是上面列出的任何数据库),然后运行命令\du
,我会得到以下结果。
List of roles
Role name | Attributes | Member of
--------------+------------------------------------------------+-----------
myusername | Superuser, Create role, Create DB, Replication | {}
postgres | Superuser | {}
我按照this link和其他一些人的说明无效。
我做错了什么?
提前非常感谢你。
答案 0 :(得分:1)
rails的默认登录名是当前登录的用户名和空白密码。