-
Notifications
You must be signed in to change notification settings - Fork 276
Neo4j::Rails Config
You can set the location of the database in the config/application.rb
file.
Example:
config.neo4j.storage_path = "#{config.root}/db/neo4j-#{Rails.env}"
config.neo4j.timestamps = false # disable automatic timestamps on updated_at and created_at properties
- Installing JRuby – see RVM
- Tomcat/Trinidad
- Glassfish App Server
Trinidad needs the Java jar files in the lib folder.
There is a script for doing this:
neo4j-jars -local
Just type
neo4j-jars
for help
If you forget to add those jar files to your rails project you may get the following error message:
No index provider ‘lucene’ found
Add the following line in your config/application.rb file:
config.neo4j.online_backup_enabled = true
Then add the correct jar files to the lib folder:
neo4j-jars -backup
To perform the backup
require 'neo4j'
Neo4j.load_online_backup
Neo4j::OnlineBackup('localhost').incremental('/var/backup')
Add the following line in your config/application.rb file:
config.neo4j['ha.db']=true
Then add the correct jar files to the lib folder:
cd YOUR_RAILS_ROOT neo4j-jars -ha
See deployment above.
You get this exception if there is already an neo4j db instance running.
Only one write instance of the database is possible. If there is already a write instance running then a read only db will be created.
Did you run the rails console before you did the first request to rails ?
Yes but it is disabled by default. Read more about it here: the identity map
and Neo4j::IdentityMap
Because you have not enabled identity map, see above.
Let say you have the following class:
class Person < Neo4j::Rails::Model
has_one(:nested)
end
node = Person.create
node.nested = Person.create
node.save
Then you can’t update the node.nested
node.nested[:some_property] = 'some value'
node.nested.nested << other_node
node.nested.save
Instead you must use a temporary variable, like this:
tmp = node.nested
tmp[:some_property] = 'some value'
tmp.nested << other_node
tmp.save
The reason is that the node.nested
creates a new instance of a
wrapped node.
However, the following will work:
n = Person.create
n.nested = Person.create
n.nested[:name] = 'foo'
n.save
n.nested[:name] # => 'foo'
You do not need a temporary variable in this case since the relationship is not
persisted yet.
WARNING: Much of the information in this wiki is out of date. We are in the process of moving things to readthedocs
- Project Introduction
- Neo4j::ActiveNode
- Neo4j::ActiveRel
- Search and Scope
- Validation, Uniqueness, and Case Sensitivity
- Indexing VS Legacy Indexing
- Optimized Methods
- Inheritance
- Core: Nodes & Rels
- Introduction
- Persistence
- Find : Lucene
- Relationships
- Third Party Gems & extensions
- Scaffolding & Generators
- HA Cluster