我正在尝试将我的数据库移动到PostgreSQL,因为我将它放在Heroku上。 关注Railscast #342。安装PostgreSLQ及其依赖于我的Ubuntu机器。当我安装它时,我认为用户已创建。我在database.yml中使用过这个用户。它看起来像这样:
production:
adapter: postgresql
encoding: unicode
database: dlrvbtApp1_production
pool: 5
username: jdartland
password:
development:
adapter: postgresql
encoding: unicode
database: dlrvbtApp1_development
pool: 5
username: jdartland
password:
test:
adapter: postgresql
encoding: unicode
database: dlrvbtApp1_test
pool: 5
username: jdartland
password:
已安装pg gem和taps gem。
跑一Bundle install
,用rake db:create:all
使用taps server sqlite://db/development.sqlite3 jdartland secure
服务器已启动。并试图通过此命令将SQL拉到我的新开发数据库。
taps pull postgres://jdartland@localhost/dlrvbtApp1_development http://jdartland:secret@localhost:5000
然后我收到此错误:
Failed to connect to database:
Sequel::DatabaseConnectionError -> PG::ConnectionBad: fe_sendauth: no password supplied
我已经尝试并尝试过,创建了新的数据库,使用.yml,pg_config等等,但是我无法让它工作。 这是我第一次使用PostgreSQL和Heroku,请帮我一把! :)
答案 0 :(得分:1)
将生产中的用户更改为localhost并将密码留空。
production:
adapter: postgresql
encoding: unicode
database: dlrvbtApp1_production
pool: 5
username: localhost
password:
答案 1 :(得分:1)
如果您要将数据库移动到Heroku,整个过程就是将数据库连接到Heroku的PG,并迁移数据。
您是否从Heroku收到了数据库详细信息? 他们基本上使用亚马逊服务他们的数据库,你会得到一些凭据放入你的yml文件中。以下是我们的Heroku应用程序之一的示例:
production:
adapter: postgresql
database: ********
pool: 5
username: ****************
password: ****************
port: 5432
host: ec2-54-228-234-250.eu-west-1.compute.amazonaws.com
如何迁移到PostgreSQL(Heroku)
如果您希望将数据从SQLite3迁移到PostgreSQL,我找到了一个非常好的教程,介绍如何执行此操作here。唯一的问题是它不适用于SQLite lol
答案 2 :(得分:1)
如果您尝试将数据库从Heroku下载到本地postgres数据库,请使用pg:pull
或pgbackups:
您还应该考虑使用foreman和.env
文件来设置DATABASE_URL,类似于在Heroku上运行它的方式,用于dev / prod parity:
答案 3 :(得分:0)
通过在堆栈上关注另一篇文章来完成它。只需上一个目录,安装了水龙头Gem install Taps
。卸载Rack gem gem uninstall rack 4
然后重新安装gem install rack --version 1.0.1
。没有在我的progect目录中这样做,只是在RVM中。然后从同一目录中拉出数据库。 (不是来自我的项目目录)。
这是整个步骤:taps migration failing from sqlite to postgres rails4, ruby 1.9.3
希望它可以帮助有同样问题的人。
现在只剩下一件事了,把它推到heroku .....我们会看到它是怎么回事......呵呵
感谢您的帮助!