0

我正在尝试将数据库从 SqlLite3 切换到 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什么也没有发生。

4

2 回答 2

1

您还必须提供主机和端口。

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

postgres 的默认端口是 5432。

于 2013-10-22T06:14:48.963 回答
1

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

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

appname您的应用程序的某种名称在哪里。

PostgreSQL 不使用 Rails 目录树中的简单文件来保存数据库,PostgreSQL(以及 MySQL 和 SQL Server 等等)将使用其自己目录中某处的文件集合,您通常不必担心它们在哪里或它们的结构是什么。如果要转储数据库以进行备份,则需要使用pg_dump.

于 2013-10-22T04:33:11.483 回答