我知道有很多这方面的话题。我试过它们都没有成功。注意,我不需要维护以前的数据。我只需要我的应用程序在Heroku中工作。
遵循本指南,这是我尝试过的一件事 Change from SQLite to PostgreSQL in a fresh Rails project
所以我的应用程序使用sqlite3。
进入' gemfile'并改变
gem 'sqlite3'
加入gem 'pg'
在终端中运行$ bundle
(以更改Gemfile.lock)
转到我的database.yml
文件并将其替换为
development:
adapter: postgresql
encoding: utf8
database: project_development
pool: 5
username:
password:
test: &TEST
adapter: postgresql
encoding: utf8
database: project_test
pool: 5
username:
password:
production:
adapter: postgresql
encoding: utf8
database: project_production
pool: 5
username:
password:
cucumber:
<<: *TEST
然后我把它推到了github。
在Heroku网站上,我将github目录连接到我的应用程序并进行部署。
它成功部署但页面只显示
We're sorry, but something went wrong.
If you are the application owner check the logs for more information.
我很确定我错过了一个步骤,因为每当我尝试在我的本地机器上运行它时就会说
ActiveRecord::NoDatabaseError
FATAL: database "project_development" does not exist
Extracted source (around line #661):
659 rescue ::PG::Error => error
660 if error.message.include?("does not exist")
661 raise ActiveRecord::NoDatabaseError.new(error.message, error)
662 else
663 raise
664 end
-
修改
当我输入
heroku run rake db:create
我收到回复
▸错误:未指定应用 ▸用法:heroku run --app APP ▸我们不知道运行此应用程序的应用程序。 ▸从app文件夹中运行此命令,或指定要与--app APP
一起使用的应用程序当我跑步时
heroku run rake db:create -app nguyen-andrew-a2
我收到回复
运行rake db:在⬢pp上创建nguyen-andrew-as2 ... !!! ▸无法找到该应用。 Macbook-Pro-5:try2 andrew $
-
在我的本地计算机上运行后,页面现在显示
fe_sendauth: no password supplied
Extracted source (around line #651):
649 # connected server's characteristics.
650 def connect
651 @connection = PGconn.connect(@connection_parameters)
652
653 # Money type has a fixed precision of 10 in PostgreSQL 8.2 and below, and as of
654 # PostgreSQL 8.3 it has a fixed precision of 19. PostgreSQLColumn.extract_precision
答案 0 :(得分:0)
您是否在本地计算机和Heroku上运行rake db:create
?
请尝试以下步骤:
bundle exec rake db:create
bundle exec rake dg:migrate
bundle exec rails s
对于Heroku,只需在任何命令之前添加heroku run
,例如:heroku run rake db:create
和heroku run rake db:migrate
。
答案 1 :(得分:0)
如果遇到couldn't find that app
错误,则意味着您为heroku命令传递了无效的应用名称作为-a, --app
选项。有效的应用名称是通过heroku apps
命令获得的。
我还看到您运行的是... -app <app-name> ...
而不是... --app <app-name> ...
,这很可能会导致错误。尝试以下命令替换:
// before
heroku run rake db:create -app nguyen-andrew-a2
// after
heroku run rake db:create --app nguyen-andrew-a2