我正在尝试将数据库从SqLite3切换到Postgresql。我的站点连接到db / development中的数据库,但我看不到那个文件。这是我的database.yml:
development:
adapter: postgresql
database: db/development
pool: 5
timeout: 5000
username: user
当我用createdb -O rolename dbname
创建新数据库时,我没有在任何地方看到该数据库。我下载了Navicat来浏览我的数据库,但我找不到它。
在我将app配置为使用postgresql并成功迁移到该数据库后,我创建了一个新的迁移。问题是我无法在任何地方看到它。如果我没有在任何地方看到数据,如何将数据插入数据库或在GUI中打开?
当我跑psql -U user db/development
时,没有任何事情发生。
答案 0 :(得分:1)
当您使用PostgreSQL时,database:
应该是一个简单的数据库名称,而不是看起来像文件名的东西。你可能应该有更像这样的东西:
development:
adapter: postgresql
database: appname_development
pool: 5
timeout: 5000
username: user
其中appname
是您的应用程序的某种名称。
PostgreSQL不使用Rails目录树中的简单文件来保存数据库,PostgreSQL(以及MySQL和SQL Server和...)将在其自己的目录中的某个地方使用一组文件,你通常不应该担心它们的位置或结构。如果要转储数据库以进行备份,则需要使用pg_dump
。
答案 1 :(得分:1)
您也必须提供主机和端口。
adapter: postgresql
host: < host > # HOST
port: < port > # Port
database: < database name > # Database Name
username: < user_name > # User Name
password: '< password >' # Password
postgres的默认端口为5432。