【问题标题】:Can't connect my development environment to a newly imported postgres database无法将我的开发环境连接到新导入的 postgres 数据库
【发布时间】:2017-02-07 12:30:25
【问题描述】:

有人给我发了一个转储数据库的 sql 文件。我通过以下命令导入它:psql my_dbname < infile.sql

我用以下内容更改了我的 database.yml 文件:

development:
  <<: *default
  database: my_dbname

但是当我运行 rails server 时,我没有预期的数据。有什么我想念的吗?我认为我需要与角色做一些事情,但我不确定。

谢谢:)

【问题讨论】:

  • 你能从database.yml添加块default:吗?
  • 在导入 .sql 文件之前,您是否完成了“rake db:create”和“rake db:migrate”
  • 阅读:How to create a Minimal, Complete, and Verifiable exampleinfile.sql 是什么?你的default 配置是什么?您采取了哪些措施来达到这一点?
  • DaniilMaksimov 添加块是什么意思? @Navin,是的,它已经完成了。当重新运行这些命令时,它确实表明 my_dbname 已经存在。但它说前者存在于。当我尝试 rake db:drop 时,它说我没有权限。
  • @TomLord,我继承了一个代码库,该代码库将开发环境连接到了一个我们称之为former_db的数据库。该数据库的数据来自种子文件。但是种子文件不够相关,所以我们决定使用在特定日期生产的数据(更多数据,仍然足够小,不会被淹没)。这些数据在我如上所述导入的文件 infile.sql 中。这就是一切的开始:)

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


【解决方案1】:

在导入 .sql 文件之前,您是否已完成 rake db:createrake db:migrate 如果没有,请执行以下操作

rake db:create
rake db:migrate

然后导入.sql文件

psql my_dbname < infile.sql

【讨论】:

    【解决方案2】:

    你可以试试:

    rake db:create
    rake db:migrate
    psql -d my_dbname -a -f infile.sql
    

    【讨论】:

    • 如果我已经做了你写的第三条命令,会不会有重复的问题?
    • 我认为第一次插入不同的数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多