【问题标题】:Database not visible数据库不可见
【发布时间】:2013-10-22 14:14:48
【问题描述】:

我正在尝试将数据库从 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 时,没有任何反应。

【问题讨论】:

    标签: ruby-on-rails ruby database postgresql activerecord


    【解决方案1】:

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

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

    其中appname 是您的应用程序的某种名称。

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

    【讨论】:

    • 谢谢。我想问你如何在控制台中检查数据库的类型?哪个命令可以显示我的应用使用的数据库类型?
    • 您是否要运行rails console 并查看应用程序是否连接到 SQLite、PostgreSQL 等?为什么不只看database.yml
    【解决方案2】:

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

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

    postgres 的默认端口是 5432。

    【讨论】:

    • 感谢您的建议。我对另一件事感兴趣。如何检查控制台内的数据库类型?哪个命令可以显示我的应用程序使用的数据库类型? Tnx
    猜你喜欢
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 2013-10-14
    • 2012-12-25
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多