2013-10-22 43 views
0

我想从SqLite3切换到Postgresql的数据库。我的网站连接到db/development数据库,但我无法在那里看到该文件。这是我的database.yml:数据库不可见

development: 
    adapter: postgresql 
    database: db/development 
    pool: 5 
    timeout: 5000 
    username: user 

当我与createdb -O rolename dbname创建新的数据库,我没有看到任何地方的数据库。我下载了Navicat来浏览我的数据库,但是我找不到它。

我在配置应用程序使用postgresql并成功迁移到该数据库后创建了一个新的迁移。问题是我无法在任何地方看到它。如果我没有在任何地方看到数据,我该如何将数据插入数据库或在GUI中打开?

当我运行psql -U user db/development什么也没有发生。

回答

1

当您使用PostgreSQL时,database:应该是一个简单的数据库名称,而不是看起来像文件名的东西。你或许应该有更多的东西是这样的:

development: 
    adapter: postgresql 
    database: appname_development 
    pool: 5 
    timeout: 5000 
    username: user 

其中appname是您的应用程序有些名气的。

PostgreSQL不会在你的Rails目录树中使用一个简单的文件来保存数据库,PostgreSQL(以及MySQL和SQL Server和...)会在它自己的目录中的某处使用一组文件,并且你通常不应该不用担心他们在哪里,或者他们的结构是什么。如果您想转储数据库用于备份目的,那么您需要使用pg_dump

+0

谢谢。我只想问你如何检查控制台中的数据库类型?哪个命令可以显示我的应用程序使用的数据库类型? – Cristiano

+0

你想运行'rails console'并找出应用程序是否连接到SQLite,PostgreSQL,...?为什么不看'database.yml'? –

1

您必须提供主机和端口。的Postgres

adapter: postgresql 
host: <host>       # HOST 
port: <port>       # Port 
database: < database name >    # Database Name 
username: <user_name>     # User Name 
password: '<password>'     # Password 

默认端口将是5432

+0

谢谢你的建议。我对一件事感兴趣。我如何检查控制台内数据库的类型?哪个命令可以显示我的应用程序使用的数据库类型? TNX – Cristiano