Ruby on rails 我的Rails数据库在哪里?
我花钱请人用RubyonRails创建了一个程序,它可以从中提取数据并将其放入Postgres数据库。程序目录中有标准Rails文件夹、应用程序、bin、config和其他目录 我试图查看表中的列列表。我认为最好的,或者说唯一的方法是登录到实际的数据库,然后打印出来。我试图使用psql命令登录,但它说:Ruby on rails 我的Rails数据库在哪里?,ruby-on-rails,ruby,postgresql,Ruby On Rails,Ruby,Postgresql,我花钱请人用RubyonRails创建了一个程序,它可以从中提取数据并将其放入Postgres数据库。程序目录中有标准Rails文件夹、应用程序、bin、config和其他目录 我试图查看表中的列列表。我认为最好的,或者说唯一的方法是登录到实际的数据库,然后打印出来。我试图使用psql命令登录,但它说: psql: FATAL: database "dan" does not exist 我不知道数据库在哪里,也不知道如何找到它 这是config/database.yml包含的内容: deve
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
我的数据库在哪里?
如何使用一些linux命令(如find)自己查找数据库-在南'…'?
如何登录并打印名为games的表的所有列?
您的数据库运行在独立于Rails的服务器上,它将由您的编码人员设置。看起来您的数据库位于本地主机上。
它将取决于您的服务器操作系统。
如果希望在数据库中显示列名,则可以在Rails控制台中:
$ rails c
$ Game.column_names
使用普通PostgreSQL访问数据库
su username
psql
\db database_name;
要连接psql,必须指定数据库名称
如果您使用的是passwordauth,只需psql-U username dbname即可
如果您使用的是对等身份验证,那么sudo-u username psql dbname
在您的情况下,您似乎正在使用密码验证并连接到本地主机,因此我建议:
psql -U dan danwork
并在提示时输入密码。如果需要,您可以使用~/.pgpass文件保存密码;要使用rails数据库控制台或rails数据库,请参阅pgpass文档
从:
rails dbconsole会计算出您正在使用的数据库,并将您放入您将使用的命令行界面中,还可以计算出要提供给它的命令行参数!。它支持MySQL、PostgreSQL、SQLite和SQLite3
您还可以使用别名“db”来调用dbconsole:railsdb
要查看游戏表的内容,请执行以下操作:
如果您真的想使用psql-U,您可以找到这些参数,如中所述,并在此处进行解释:
~/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标志。没有开发数据库?在任何情况下,prod数据库都称为sports,表示它在配置文件中的位置为database:sports。我正在根目录、db和config目录中尝试命令psql sports,它表示FATAL:database sports不存在。。。你是对的,这里有一个开发数据库,很抱歉我之前错过了。现在更新我的帖子您是否运行rake db:create和rake db:migrate来实际创建数据库?默认情况下,您将处于开发环境中,其中DB称为danwork。输入命令的位置不相关;psql对Rails环境一无所知。如果我理解正确的话,此人刚刚创建了应用程序,但还没有运行,只是代码?在这种情况下,您需要创建数据库rake db:create db:migrate,然后可以连接并检查columns@arnvald-他希望会有一些实际的数据,所以使用create创建一个新的数据库不会有帮助。这是一种多么迂回的方法啊。如果您使用的是passwordauth,只需psql-U username dbname即可。如果您使用的是对等身份验证,那么sudo-u username psql dbname。
~/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>$