现有Rails项目中如何配置Neo4j替代PostgreSQL数据库
问题解决方案
1. 先解决zsh命令报错问题
你遇到的zsh: no matches found报错是因为zsh默认会把方括号识别为通配符做匹配,只需要给命令加单引号包裹即可:
rake 'neo4j:install[community-latest]'
或者转义方括号:
rake neo4j:install\[community-latest\]
2. 排查rake任务不存在的问题
2.1 确认gem正确安装
先执行bundle install确保所有依赖安装完成,再执行以下命令验证neo4j相关gem已加载:
bundle list | grep neo4j
2.2 手动引入rake任务
新版neo4j相关gem默认不会自动注入rake任务,你需要手动在项目根目录的Rakefile中添加引入代码,位置放在Rails.application.load_tasks之前:
require 'neo4j/rake_tasks'
添加完成后执行bundle exec rake -T即可看到neo4j相关的rake任务。
2.3 版本兼容适配
你当前使用的Ruby 2.6.6、Rails 6.1.3.2仅适配neo4j v10及更早版本,若安装了更高版本的gem会出现任务加载失败问题,可在Gemfile中指定兼容版本后重新执行bundle install:
gem 'neo4j', '~> 10.0.1' gem 'neo4j-core', '~> 10.0.1' gem 'neo4j-ruby-driver', '~> 4.4' gem 'neo4j-rake_tasks', '~> 0.7.0'
3. 替代安装方案(更稳定)
如果rake安装任务始终无法正常使用,可直接通过Docker启动本地Neo4j服务,一行命令即可完成部署,无需依赖项目内的rake任务:
docker run -d -p 7474:7474 -p 7687:7687 -e NEO4J_AUTH=neo4j/自定义密码 neo4j:community-latest
启动成功后访问http://localhost:7474即可进入Neo4j管理界面,后续在项目config/neo4j.yml中配置对应连接参数即可。
内容的提问来源于stack exchange,提问作者Yehuda Bortz
相关产品推荐
相关产品推荐

