【问题标题】:After rebooting server on C9 my PostgreSQL database is empty在 C9 上重新启动服务器后,我的 PostgreSQL 数据库为空
【发布时间】:2017-03-28 23:53:05
【问题描述】:

我在 C9 上有一个带有 SQLite 3 数据库的 Rails 项目。最近我想切换到 PostgreSQL 数据库以便能够在 Heroku 上运行一个项目。 SQLite 3 数据库中的所有记录都使用 Sequel gem 复制到 PostgreSQL 数据库,没有任何问题。所有记录都传递到了新数据库,我能够看到它,但是,在重新启动我的 C9 项目并启动 PostgreSQL 服务并将其连接到我的数据库后,我发现数据库中没有任何记录。或者,它还没有连接。我不明白。

每次我重新启动项目时,PostgreSQL 数据库中的记录都会消失,我必须创建一个新数据库并再次迁移它才能看到我的记录。我做错了什么?

这是我的操作列表:

sudo service postgresql start
psql -c "create database myapp_development owner=ubuntu"
sequel -C sqlite://db/development.sqlite3 postgres://ubuntu@""/myapp_development

然后更新database.yml文件记录:

Development:
  - adapter: postgresql
  - encoding: SQL_ASCII
  - database: myapp_development
  - pool: 5
  - username: ubuntu
  - password: password

然后运行:

rake db:migrate

在这些操作之后,我可以运行项目并查看我的记录。

重启项目后,我尝试运行以下命令:

sudo service postgresql start
psql myapp_development ubuntu
\c

但它不能帮助我查看任何记录。

如果我错过了任何命令,请告诉我。

【问题讨论】:

  • “重启”是指重启一切,还是重新创建虚拟机并重新设置代码文件? (在这种情况下,数据库当然消失了)
  • Richard,重新启动是指重新启动浏览器并使用相同的工作区打开新的 c9 会话

标签: ruby postgresql sqlite sequel c9.io


【解决方案1】:

postgres 用户身份运行psql

sudo sudo -u postgres psql -d myapp_development -U ubuntu -W

【讨论】:

  • 米哈伊尔,我试过了。收到以下消息:FATAL: Peer authentication failed for user "ubuntu" 以前的连接保持
  • 试试 -W sudo sudo -u postgres psql -d myapp_development -U ubuntu -W
  • 米哈伊尔,我试过了——在询问用户 ubuntu 的密码后结果是一样的:psql: FATAL: Peer authentication failed for user "ubuntu"
  • “peer auth”错误是因为您已将 pg_hba.conf 配置为使用它而不是密码访问
  • 通过从头开始重复每一步并授予对 postgres 数据库的访问权限来解决我的问题。谢谢,伙计们
猜你喜欢
  • 2021-08-10
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 2015-05-21
  • 1970-01-01
相关资源
最近更新 更多