【问题标题】:Rails: Populate Heroku database with development.sqlite3 dataRails:使用 development.sqlite3 数据填充 Heroku 数据库
【发布时间】:2013-02-28 13:35:17
【问题描述】:

如果我的特殊案例已经在这个论坛上得到回答,我不会问这个问题,所以请原谅我的再次提问。

我有一个使用 sqlite3 数据库进行开发的 rails 应用程序,它已经包含了该应用程序所需的所有数据。在将这个应用程序推送到 heroku 时,我无法查看那里的应用程序,直到我不得不运行 heroku run rake db:migrate。现在我可以查看该应用程序,但我无法使用管理员帐户登录或执行任何其他需要数据库数据的操作。我已经做了所有需要的(我认为),如下面的 gem 文件所示:

    source 'https://rubygems.org'

gem 'rails', '3.2.12'
gem 'bcrypt-ruby'
gem 'kaminari'
gem 'gon'
.
.
.
gem 'jquery-rails', '2.0.2'

group :development, :test do
  gem 'sqlite3', '1.3.7'
end

group :production do
  gem 'pg', '0.12.2'
end
.
.

我也尝试过 heroku db:push 但这也无济于事。主要问题是我正在和其他人一起开发这个应用程序,我们使用 github 进行版本控制。但是,每当我从彼此那里得到更新时,我们的 sqlite 数据库似乎总是自己清空。因此,为了解决这个问题,我们通常必须将更新后的数据库直接通过电子邮件发送给对方,然后对方继续使用它并替换他本地 repo 中的空 on。我怀疑 heroku rakedb:migrate 的原因是这样的。

但是,随着我们的发展已经走到了这一步,我们真的负担不起重新开始。有没有一种方法可以使用本地 repo db 的内容填充远程 heroku 数据库?感谢您的回复

【问题讨论】:

  • heroku db:push,如果这不起作用,那是您需要解决的问题,这是最简单的方法。
  • 嗨 Zippie,我忘了补充一点,我也试过 heroku db:push。它也没有用。我该如何解决?

标签: ruby-on-rails heroku github sqlite


【解决方案1】:

您应该将数据从 sqlite 导出到 sql 转储文件并开始在本地使用 postgres。如果你继续在本地使用 sqlite 和远程使用 postgres,你将有一段糟糕的时光。

在本地迁移后,请按照Importing and Exporting Heroku Postgres Databases with PG Backups. 上的此指南进行操作

另外,不要使用db:pushdb:pull;它们已被弃用。

更新

要在本地 postgres 中获取 sql 文件,首先安装和设置 postgres(Homebrew、macports、其他...),然后执行以下操作:

$ psql -U user -d database < file.sql

从那里,您可以使用pg_dump 实用程序导出到.dump 文件。您也可以将 sql 直接导入 Heroku Postgres:

# this will delete ALL data in your postgres, so make sure it's what you want
$ heroku pg:reset HEROKU_POSTGRESQL_COLOR --app app_name
$ heroku pg:psql HEROKU_POSTGRESQL_COLOR --app app_name < file.sql

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-01-17
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
相关资源
最近更新 更多