在使用git push heroku master来把代码push到远端服务器前需要先把ssh
key配置好。
运行这个命令“heroku keys:add ~/.ssh/heroku_rsa.pub”。其实public
key用一个就够了,以前不大懂的时候,一不小心就重新生成一次public
key,然后各种使用key的地方都挂了。所以采用了这种方式,不同的应用(比如github,远程的机器等等)使用不同名字的key。在~/.ssh/config里面配置一下就行了。像这样:
Host heroku.com
IdentityFile ~/.ssh/heroku_rsa
然后在执行 git push heroku master 。
push完了,如果被告知错误,尝试使用"bundle
install
--deployment"把gem安装到vendor/bundle下面,然后把这些gem统统push了上去,安装是成功了。如果还是出现错误:
/usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/runtime.rb:64:in `require': no such file to load -- sqlite3 (LoadError)
则原因是:heroku的production环境是不支持sqlite,改在production下面使用postgreSQL。
运行heroku
config,会得到这样的一行:
DATABASE_URL =>postgres://remcjmwuqq:k1685gxbcfSgR0-n7B_q@ec2-23-23-217-149.compute-1.amazonaws.com/remcjmwuqq
这个就是给分配的共享的数据库地址了。更改config/database.yml如下即可:
production:
adapter: postgresql
database: DATABASE_URL
pool: 5
timeout: 5000
还需要postgreSQL的adapter,所以需要添加一个gemr。添加到gemfile里面,bundle
install之。然后把gemfile,gemfile.lock等等都commit了,再push一次即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)