Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Capistrano Rails应用程序SQLite3无法打开数据库_Ruby On Rails_Capistrano_Sqlite3 Ruby - Fatal编程技术网

Ruby on rails Capistrano Rails应用程序SQLite3无法打开数据库

Ruby on rails Capistrano Rails应用程序SQLite3无法打开数据库,ruby-on-rails,capistrano,sqlite3-ruby,Ruby On Rails,Capistrano,Sqlite3 Ruby,我已经设法将一个使用Capistrano部署的Rails应用程序部署到运行NGinx&Passenger的服务器上。在部署时,我收到了“我们很抱歉,出了问题”的消息&由于生产日志为空,我感到相当困惑。然后在我的NGinx配置中将rails\u env切换到development&现在我得到了: SQLite3::CantOpenException unable to open database file Rails.root: /www/testcap/releases/20120407015

我已经设法将一个使用Capistrano部署的Rails应用程序部署到运行NGinx&Passenger的服务器上。在部署时,我收到了“我们很抱歉,出了问题”的消息&由于生产日志为空,我感到相当困惑。然后在我的NGinx配置中将
rails\u env
切换到
development
&现在我得到了:

SQLite3::CantOpenException

unable to open database file
Rails.root: /www/testcap/releases/20120407015032
我登录到服务器,进入
testcap
中的
current
文件夹(我相信这是最新版本的符号链接)并运行
rake db:create
,但是数据库文件存在。查看了应用程序的
db
文件夹后,我看到了
development.db
test.db

如果我运行
rails s-e production
,然后前往myurl.com:3000,应用程序运行完全正常,这很奇怪,当我运行
rails s-e development
时,它也可以正常运行

我完全不知道这里可能有什么问题。我相信这一定是一个相对明显的问题,可能与卡皮斯特拉诺有关?我还是个新手,所以我很可能错过了任何东西,但谷歌搜索到目前为止毫无结果

我唯一能想到的是,在我的
config/deploy.rb
?然而,到目前为止,我还没有在网上找到任何帮助我的指南

提前感谢您的帮助:)


杰克。

多亏了上面亚当·p&Ben·L的评论,我在这个问题上取得了一些进展。也解决了我的问题

我按照上面指南中的步骤,在我的
数据库.yml
文件中,我将
生产
数据库的路径从以下位置更改为:

`db/production.sqlite3`

(如绝对路径)

然后我将其添加到我的
config/deploy.rb

role :db, "{my vps IP}", :primary => true
在我的VPS上,我进入nginx配置并删除了行
rails\u env development
(乘客然后将其默认设置为
production

然后运行
cap-deploy
,然后运行
cap-deploy:migrate
,这很有效,我在访问URL时会显示应用程序

我希望这可能会帮助将来陷入同样问题的人:)


杰克。

多亏了上面亚当·p&Ben·L的评论,我在这个问题上取得了一些进展。也解决了我的问题

我按照上面指南中的步骤,在我的
数据库.yml
文件中,我将
生产
数据库的路径从以下位置更改为:

`db/production.sqlite3`

(如绝对路径)

然后我将其添加到我的
config/deploy.rb

role :db, "{my vps IP}", :primary => true
在我的VPS上,我进入nginx配置并删除了行
rails\u env development
(乘客然后将其默认设置为
production

然后运行
cap-deploy
,然后运行
cap-deploy:migrate
,这很有效,我在访问URL时会显示应用程序

我希望这可能会帮助将来陷入同样问题的人:)


杰克。

可能是文件权限问题?要进行测试,请尝试chmod 777对.db文件进行加密,然后查看它是否有效?是否可以运行
cap deploy:migrate
?权限听起来可能是文件存在时无法打开错误的答案。可能是文件权限问题吗?要进行测试,请尝试chmod 777对.db文件进行加密,然后查看它是否有效?是否可以运行
cap deploy:migrate
?如果文件存在,权限可能是无法打开错误的答案。