ruby-on-rails – 可以将Gemfile和Gemfile.lock添加到git

我正在尝试将我的应用程序部署到Heroku.

我删除了’sqlite3’gem并将以下部分添加到我的Gemfile中:

gem 'sqlite3', group: :development

group :production do
    gem 'pg'
    gem 'rails_12factor'
end

之后,我运行了bundle install来更新它.但是,当我尝试做git add时,它说:

error: insufficient permission for adding an object to repository database.git/objects
error: Gemfile.lock: failed to insert into database
error: unable to index file Gemfile.lock
fatal: updating files failed

如果我删除了我在Gemfile中添加的代码,一切正常!
我正在运行OSX 10.11.1,Rails 4.2.4,ruby 2.2.1p85和git 2.4.9(Apple Git-60).

最佳答案 问题可能是因为您的config / database.yml需要配置为使用postgresql而不是sqlite.

我强烈建议使用postgres进行生产和开发,方法是从gem文件中删除gem’sqlite3′,group ::开发,只需在生产组之外添加gem’pg'(因此它适用于所有环境:dev,prod和测试).

然后在您的database.yml中,在默认的:& default部分中,将适配器更改为:

  adapter: postgresql

或者,如果要继续在dev中使用sqlite,只需将database.yml中的production:部分更改为以下内容:

production:
  adapter: postgresql
  encoding: unicode
  pool: 5

您可能需要将数据库:value更改为:

  database: your_app_name_production

其中“your_app_name”是您的应用程序的名称.

注意:请务必保持间距精确,因为YAML文件对空白敏感.

希望有所帮助.

点赞