Rails plugin for syncing production database and files to local development server.
To install, just add Data sync to your vendor/plugins
directory:
rails plugin install git://github.com/carr/data_sync.git
- Capistrano
- add gem capistrano to your Gemfile
For pulling the database of the remote server
rake db:pull
For pulling the database and the files of the remote server
rake data:pull
If you're planning to use this with MongoDB your config/database.yml should use mongodb as adapter value.
- development:
- adapter: mongodb
- database: surveys-development
- host: localhost
- ...
And initalizer for MongoDB in config/initializers/mongo.rb default_mongodb_port = 27107
database_configurations = YAML::load(File.read(Rails.root.join('config', 'database.yml')))
if database_configurations[Rails.env] && database_configurations[Rails.env]['adapter'] == 'mongodb'
database = database_configurations[Rails.env]
database['port'] ||= default_mongodb_port
MongoMapper.connection = Mongo::Connection.new(database['hostname'], database['port'])
MongoMapper.database = database['database']
if defined?(PhusionPassenger)
PhusionPassenger.on_event(:starting_worker_process) do |forked|
MongoMapper.connection.connect_to_master if forked
end
end
end
- Prompt ("All files will be overwritten..")
- database and files push
- change usage to "push:files", "push:db", "push:data", "pull:files", "pull:db", "pull:files"
- refactor rake task, duplicate code