Survey b
This commit is contained in:
1 parent
cd26b880fb
commit
ae79694b44
83 files changed
+2084
-11
No files matched your search
@@ -0,0 +1,71 @@
|
||||
# encoding: utf-8
|
||||
|
||||
# =================================================================
|
||||
# move archives from main site to other sites depending on category
|
||||
# =================================================================
|
||||
|
||||
|
||||
require 'mongo'
|
||||
include Mongo
|
||||
|
||||
DB_BASE_NAME = "production"
|
||||
|
||||
CATEGORIES = { 'TNR' => 3, 'DOC' => 1, 'PROPERTY' => 5, 'CASHIER' => 2, 'CON' => 10 }
|
||||
|
||||
main_db = MongoClient.new("localhost", 27017).db("#{DB_BASE_NAME}_#{0}")
|
||||
main_categories = main_db["archive_file_categories"]
|
||||
main_archive_files = main_db["archive_files"]
|
||||
main_archive_file_multiples = main_db["archive_file_multiples"]
|
||||
|
||||
CATEGORIES.each do |key, number|
|
||||
# set the target DB
|
||||
target_db = MongoClient.new("localhost", 27017).db("#{DB_BASE_NAME}_#{number}")
|
||||
target_categories = target_db["archive_file_categories"]
|
||||
target_archive_files = target_db["archive_files"]
|
||||
target_archive_file_multiples = target_db["archive_file_multiples"]
|
||||
|
||||
if main_cat = main_categories.find_one(key: key)
|
||||
# get or create category
|
||||
category_id = \
|
||||
if cat = target_categories.find_one(key: main_cat['key'])
|
||||
cat['_id']
|
||||
else
|
||||
copy_category = main_cat.clone
|
||||
copy_category['_id'] = BSON::ObjectId.new
|
||||
copy_category['create_user_id'] = nil
|
||||
copy_category['update_user_id'] = nil
|
||||
target_categories.save copy_category
|
||||
end
|
||||
|
||||
main_archive_files.find(archive_file_category_id: main_cat['_id']).each do |archive_file|
|
||||
# copy archive_file
|
||||
copy_archive_file = archive_file.clone
|
||||
copy_archive_file['_id'] = BSON::ObjectId.new
|
||||
copy_archive_file['create_user_id'] = nil
|
||||
copy_archive_file['update_user_id'] = nil
|
||||
copy_archive_file['tagged_ids'] = []
|
||||
copy_archive_file['user_ids'] = nil
|
||||
copy_archive_file['archive_file_category_id'] = category_id
|
||||
target_archive_files.save copy_archive_file
|
||||
|
||||
main_archive_file_multiples.find(archive_file_id: archive_file['_id']).each do |archive_file_multiple|
|
||||
# copy archive_file_multiples
|
||||
copy_archive_file_multiple = archive_file_multiple.clone
|
||||
copy_archive_file_multiple['_id'] = BSON::ObjectId.new
|
||||
copy_archive_file_multiple['create_user_id'] = nil
|
||||
copy_archive_file_multiple['update_user_id'] = nil
|
||||
copy_archive_file_multiple['archive_file_id'] = copy_archive_file['_id']
|
||||
|
||||
# copy gridfs file
|
||||
main_grid = Mongo::GridFileSystem.new(main_db)
|
||||
file = main_grid.open("assets/archive_file_multiple/file/#{archive_file_multiple['_id']}/#{archive_file_multiple['file']}", 'r')
|
||||
target_grid = Mongo::GridFileSystem.new(target_db)
|
||||
target_grid.open("assets/archive_file_multiple/file/#{copy_archive_file_multiple['_id']}/#{copy_archive_file_multiple['file']}", 'w') do |f|
|
||||
f.write file
|
||||
end
|
||||
|
||||
target_archive_file_multiples.save copy_archive_file_multiple
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user