我将小应用程序从C9部署到github然后再到Heroku! 在heroku部署仪表板中,它表示已经部署了,但是当我打开应用程序时,它只是给了我错误消息。 所以我搜索了很多Stackoverflow的答案,并按照Heroku网站(https://devcenter.heroku.com/articles/sqlite3)的指示删除了sqlite3并安装了gem pg。
我确实取代了gem' sqlite3'宝石''然后安装'捆绑安装',然后
它说我需要转换我的config / database.yml文件,所以我将其替换为:
development:
adapter: postgresql
database: my_database_development
pool: 5
timeout: 5000
test:
adapter: postgresql
database: my_database_test
pool: 5
timeout: 5000
production:
adapter: postgresql
database: my_database_production
pool: 5
timeout: 5000
然后当我回到c9 bash并键入' rake db:create', 它告诉我
**rake aborted!
ActiveRecord::NoDatabaseError: FATAL: database "my_database_development" does not exist**
这个错误。
有人说'捆绑exec rake db:setup'会工作,所以我做了,然后它显示**Couldn't create database for {"adapter"=>"postgresql", "database"=>"my_database_test", "pool"=>5, "timeout"=>5000}
/home/ubuntu/workspace/db/schema.rb doesn't exist yet. Run `rake db:migrate` to create it, then try again. If you do not intend to use a database, you should instead alter /home/ubuntu/workspace/config/application.rb to limit the frameworks that will be loaded.**
当我输入' rake db:migrate'时,我不知道如何对此消息做出反应....它再次显示了这一点。
rake aborted!
ActiveRecord::NoDatabaseError: FATAL: database "my_database_development" does not exist
我没有使用数据库,所以也许我可以在' config / application.rb'上尝试一下。文件,但我该怎么办?
答案 0 :(得分:0)
没有必要更改您的development
和test
数据库,这些数据库仍然可以使用sqlite3,因此您的C9实例将继续有效。
(尽管在所有环境中使用一致的适配器有一些优点)
如果这只是一个爱好练习,我很想保留sqlite3进行开发和测试。
此外,Heroku用自己的版本替换database.yml,因此您不需要在database.yml中生成节
您确实需要pg
gem,但您可以指定它仅在生产中加载,您可以指定sqlite3
gem仅在开发和测试中加载。在你的Gemfile中执行,然后捆绑。
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
如果要在C9实例中使用PostgreSQL,则必须安装PostgreSQL(数据库,而不仅仅是适配器)。这不是一个简单的过程。
此维基解释了如何安装它。
https://wiki.postgresql.org/wiki/Detailed_installation_guides
答案 1 :(得分:-2)
您可以手动创建数据库的解决方案之一,这很容易解决