新手问题 mina 部署 rails 时出错

dxwts · 2013年10月29日 · 最后由 dxwts 回复于 2013年10月29日 · 3403 次阅读

请问各位,我在用 mina 部署 rails 时出错,google 查了一下似乎是 rails 的环境变量问题,我在 deploy.rb 添加 set :rails_env, 'development'也没用,这个是用来设置 rails 变量的吧。deploy.rb 只改过四个地方,麻烦各位帮忙看看我哪里环境配置不对,谢谢。

set :domain, '127.0.1.1'
set :deploy_to, '/home/dxw/apps/railsDemoApp'
set :repository, 'git@github.com:dxwts/railsDemoApp.git'
set :branch, 'master'
set :rails_env, 'development'

-----> Migrating database
       rake aborted!
       database configuration does not specify adapter
.....................................................
       (See full trace by running task with --trace)
 !     ERROR: Deploy failed.
-----> Cleaning up build
共收到 14 条回复

database configuration does not specify adapter

database.yml 有问题

感谢如此快回复! 这个配置文件要如何改? 现在还是用的 rails 默认数据库

要看 databaes.yml 内容,文件是否正确放置。

这个文件药房在哪个共享目录下面的 config 文件夹里面的。

mina setup 完成没,记得会自动传过去的

railsDemoApp/config/database.yml 这个是文件路径

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

路径应该是对的,这部分我没动过,在本地目录 rake db:migrate 时是正常的,因为学习用,我用 mina 部署实际也是部署在本地,感觉环境应该是一样的才对

部署目录/apps/railsDemoApp/shared/config/database.yml 也有了

9楼 已删除

默认的 deploy.rb 的 task :setup 里面会有这样一句: #queue %[echo "-----> Be sure to edit 'shared/config/database.yml'."] 就是提醒你要确保 database.yml 的存在。

另外用 sqlite3 配 mina 的话很麻烦的。 首先,默认.gitignore 文件会排除 sqlite3 文件,上传时可能需要修改.gitignore 文件 其次,每次发布时候都要上传数据库肯定也不靠谱,最好把数据库放在 share 文件夹下面然后自己管理软连接

我看你的 git repo

set :rails_env, 'staging'

这样会去读 database.yml 的 staging 配置,把这行去掉,默认用 production。

#9 楼 @richard020389 谢谢您的建议,我试试

谢谢各位帮忙,搞定了原来真的是 database.yml 的问题,部署目录里虽然有生成这个文件但却是空的,我把源目录的文件拷贝过来就好了

#10 楼 @Rei 恩,原本设的是 development,照 mina 文档改了一下改成 staging,现在又 revert 回来了

社区里还真是活跃,氛围真好

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册