我付钱给某人用Ruby on Rails创建一个程序,它会抓取数据并将其放入Postgres数据库。在程序的目录中是标准的Rails文件夹,应用程序," bin"," config"和其他目录。
我试图查看表格中的列列表。我认为最好或唯一的方法是登录实际的数据库并打印出来。我试图使用" psql"登录命令,但它说:
psql: FATAL: database "dan" does not exist
我不确定数据库的位置,或者我如何找到它。
这是config / database.yml包含的内容:
development:
adapter: postgresql
database: danwork
pool: 5
timeout: 5000
encoding: unicode
username: dan
password: supersecretpassword
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: postgresql
database: sports
pool: 5
timeout: 5000
encoding: unicode
username: namename
password: sports_db
find . -iname '...'
?答案 0 :(得分:1)
如果您希望在数据库中显示列名,那么您将能够在Rails控制台中do this:
$ rails c
$ Game.column_names
答案 1 :(得分:1)
您需要rails dbconsole
或rails db
。
来自Rails Guide:
rails dbconsole
确定您正在使用哪个数据库并将其放入您将使用它的任何命令行界面(并计算出命令行参数也可以给它!)。它支持MySQL,PostgreSQL,SQLite和SQLite3。您还可以使用别名“db”来调用dbconsole:
rails db
。
要查看games
表的内容:
~/Documents/workspace/<project-dir>$ rails db
psql (9.6.3)
Type "help" for help.
development=# select * from games;
id | date | description | city | state
----+------+-------------+----------------------+-------
1 | | | Boston | MA
2 | | | Seattle | WA
(2 rows)
development=# \q
~/Documents/workspace/<project-dir>$
如果确实想要使用psql -U <username> <dbname>
,您可以按this answer中所述找到这些参数并在此处解释:
~/Documents/workspace/<project-dir>$ rails c
Loading development environment (Rails 4.1.4)
2.3.1 :001 > Rails.configuration.database_configuration[Rails.env]
=> {"adapter"=>"postgresql", "encoding"=>"unicode", "pool"=>5, "database"=>"development"}
2.3.1 :002 > exit
~/Documents/workspace/<project-dir>$ psql development
psql (9.6.3)
Type "help" for help.
development=# \q
~/Documents/workspace/<project-dir>$
如您所见,如果没有返回用户名,则您不会需要-U
标记。
答案 2 :(得分:0)
使用普通的PostgreSQL访问您的数据库
su username
psql
\db database_name;
答案 3 :(得分:0)
要与psql
连接,您必须指定数据库名称。
如果您使用密码验证,只需psql -U username dbname
。
如果您使用peer
身份验证,sudo -u username psql dbname
。
在您的情况下,您似乎使用密码验证并连接到本地主机,因此我建议:
psql -U dan danwork
并在提示时输入密码。 (如果需要,您可以使用~/.pgpass
文件保存密码;请参阅pgpass文档)