복붙노트

[MONGODB] 유성 배포 된 응용 프로그램에서 데이터를 내보낼 수있는 간단한 방법이 있나요?

MONGODB

유성 배포 된 응용 프로그램에서 데이터를 내보낼 수있는 간단한 방법이 있나요?

유성 배포 된 응용 프로그램에서 데이터를 내보낼 수있는 간단한 방법이 있나요?

내가 배치했다 경우에 따라서, 예를 들어, 응용 프로그램은 test.meteor.com라는 이름의 ...

내가 배포 된 응용 프로그램에서 데이터를 로컬로 실행할 수 있도록 - 어떻게 쉽게 그 앱에서 수집 된 데이터를 다운로드 할 수 있을까?

해결법

  1. ==============================

    1.명령을 사용 meteor.com에서 배포 된 사이트의 URL을 얻으려면 (당신이 암호를 보호하는 경우 귀하의 사이트 비밀번호를 제공해야 할 수도 있습니다) :

    명령을 사용 meteor.com에서 배포 된 사이트의 URL을 얻으려면 (당신이 암호를 보호하는 경우 귀하의 사이트 비밀번호를 제공해야 할 수도 있습니다) :

    meteor mongo --url YOURSITE.meteor.com
    

    뭔가를 같이 반환하는 :

    mongodb://client:PASSWORD@sky.member1.mongolayer.com:27017/YOURSITE_meteor_com
    

    어떤 당신은 mongodump 같은 프로그램에 제공 할 수 있습니다

    mongodump -u client -h sky.member1.mongolayer.com:27017 -d YOURSITE_meteor_com\
              -p PASSWORD
    

    암호는 일분에 대해서만 좋다. 사용의 경우 :

    $ meteor --help mongo
    
  2. ==============================

    2.(유성에 지역 MongoDB를 업로드) : 그리고 여기에 반대 할 방법

    (유성에 지역 MongoDB를 업로드) : 그리고 여기에 반대 할 방법

    https://gist.github.com/IslamMagdy/5519514

    # How to upload local db to meteor:
    
    # -h = host, -d = database name, -o = dump folder name
    mongodump -h 127.0.0.1:3002 -d meteor -o meteor
    
    # get meteor db url, username, and password
    meteor mongo --url myapp.meteor.com
    
    # -h = host, -d = database name (app domain), -p = password, folder = the path to the dumped db
    mongorestore -u client -h c0.meteor.m0.mongolayer.com:27017 -d myapp_meteor_com -p 'password' folder/
    
  3. ==============================

    3.카스퍼 Souren의 솔루션을 기반으로 난 당신이 암호를 사용하여 원격 유성 응용 프로그램을 보호 할 때 또한 유성의 현재 버전에서 작동 및 작동하는지 업데이트 된 스크립트를 만들었습니다.

    카스퍼 Souren의 솔루션을 기반으로 난 당신이 암호를 사용하여 원격 유성 응용 프로그램을 보호 할 때 또한 유성의 현재 버전에서 작동 및 작동하는지 업데이트 된 스크립트를 만들었습니다.

    다음 스크립트 parse-mongo-url.coffee을 만드십시오 :

    spawn = require('child_process').spawn
    mongo = spawn 'meteor', ['mongo', '--url', 'YOURPROJECT.meteor.com'], stdio: [process.stdin, 'pipe', process.stderr]
    
    mongo.stdout.on 'data', (data) ->
        data = data.toString()
        m = data.match /mongodb:\/\/([^:]+):([^@]+)@([^:]+):27017\/([^\/]+)/
        if m?
            process.stdout.write "-u #{m[1]} -p #{m[2]} -h #{m[3]} -d #{m[4]}"
        else
            if data == 'Password: '
                process.stderr.write data
    

    그런 다음 * 괜찬아 쉘에서 다음과 같이 그것을 실행 :

    mongodump `coffee parse-mongo-url.coffee`
    
  4. ==============================

    4.나는 유성 데이터베이스에서 편리하게 사용하기 위해 모든 몽고 DB 클라이언트 쉘 명령을 래핑하는 도구, mmongo를 만들었습니다. 당신이 NPM (노드 패키지 관리자)를 사용하는 경우, 당신은 그것을 함께 설치할 수 있습니다 :

    나는 유성 데이터베이스에서 편리하게 사용하기 위해 모든 몽고 DB 클라이언트 쉘 명령을 래핑하는 도구, mmongo를 만들었습니다. 당신이 NPM (노드 패키지 관리자)를 사용하는 경우, 당신은 그것을 함께 설치할 수 있습니다 :

    npm install -g mmongo
    

    그렇지 않으면, README를 참조하십시오.

    당신의 유성 데이터베이스를 백업하려면, 당신은 지금 할 수있는 :

    mmongo test.meteor.com dump 
    

    해당 지역의 개발에 업로드 유성 될 것이다 :

    mmongo restore dump/test_meteor_com
    

    그리고 당신은 실수로 프로덕션 데이터베이스를 삭제하는 경우 :

    mmongo test.meteor.com --eval 'db.dropDatabase()'   # whoops!
    

    당신은 쉽게 복원 할 수 있습니다 :

    mmongo test.meteor.com restore dump/test_meteor_com 
    

    당신은 오히려 읽을 뭔가 모음 (예를 들어 작업을) 수출하려는 경우 :

    mmongo test.meteor.com export -c tasks -o tasks.json
    

    그런 다음, 텍스트 편집기에서 tasks.json을 열고 일부 변경을하고와 변경 내용을 삽입 할 수 있습니다 :

    mmongo test.meteor.com import tasks.json -c tasks --upsert
    

    Github에서, NPM

  5. ==============================

    5.나는 그런 경우 만약 그렇다면, 당신의 데이터는 MongoDB를 데이터베이스에있는 가정, 질문은 더 유성보다 몽고 관련된다. 당신은 mongoexport 및 mongoimport 명령 줄 도구를 살펴 걸릴 수 있습니다.

    나는 그런 경우 만약 그렇다면, 당신의 데이터는 MongoDB를 데이터베이스에있는 가정, 질문은 더 유성보다 몽고 관련된다. 당신은 mongoexport 및 mongoimport 명령 줄 도구를 살펴 걸릴 수 있습니다.

    (예를 들어) 편집 :

    mongoexport -h flame.mongohq.com:12345 -u my_user -p my_pwd -d my_db -c my_coll

    이 명령 줄 도구를 가지고 컴퓨터에 MongoDB를 설치해야하고, 분명 당신은 당신의 MongoDB를의 정보가 필요합니다. 위의 예에서, 나는 (flame.mongohq.com는 '12345'당신의 몽고 서버의 포트 호스트입니다) MongoHQ에 연결하지만 실제로 호스팅 유성에 의해 사용되는 몽고 호스트 모른다. 로컬로 유성 예 (일하러, 스코어 보드 등)을 시도하는 경우, 기회는 기본적으로 로컬 서버를 사용하기 때문에 당신은 이미, 몽고를 설치합니다.

  6. ==============================

    6.여기 떠들썩한 파티에서 또 다른 해결책은

    여기 떠들썩한 파티에서 또 다른 해결책은

    #! /bin/bash
    # inspired by http://stackoverflow.com/questions/11353547/bash-string-extraction-manipulation
    
    # http://www.davidpashley.com/articles/writing-robust-shell-scripts/
    set -o nounset
    set -o errexit
    set -o pipefail
    set -x
    
    # stackoverflow.com/questions/7216358/date-command-on-os-x-doesnt-have-iso-8601-i-option
    function nowString {
        date -u +"%Y-%m-%dT%H:%M:%SZ"
    }
    
    NOW=$(nowString)
    
    # prod_url="mongodb://...:...@...:.../..."
    prod_pattern="mongodb://([^:]+):([^@]+)@([^:]+):([^/]+)/(.*)"
    prod_url=$(meteor mongo katapoolt --url | tr -d '\n')
    [[ ${prod_url} =~ ${prod_pattern} ]]
    PROD_USER="${BASH_REMATCH[1]}"
    PROD_PASSWORD="${BASH_REMATCH[2]}"
    PROD_HOST="${BASH_REMATCH[3]}"
    PROD_PORT="${BASH_REMATCH[4]}"
    PROD_DB="${BASH_REMATCH[5]}"
    PROD_DUMP_DIR=dumps/${NOW}
    mkdir -p dumps
    
    # local_url="mongodb://...:.../..."
    local_pattern="mongodb://([^:]+):([^/]+)/(.*)"
    local_url=$(meteor mongo --url | tr -d '\n')
    [[ ${local_url} =~ ${local_pattern} ]]
    LOCAL_HOST="${BASH_REMATCH[1]}"
    LOCAL_PORT="${BASH_REMATCH[2]}"
    LOCAL_DB="${BASH_REMATCH[3]}"
    
    mongodump --host ${PROD_HOST} --port ${PROD_PORT} --username ${PROD_USER} --password ${PROD_PASSWORD} --db ${PROD_DB} --out ${PROD_DUMP_DIR}
    mongorestore --port ${LOCAL_PORT} --host ${LOCAL_HOST} --db ${LOCAL_DB} ${PROD_DUMP_DIR}/${PROD_DB}
    
  7. ==============================

    7.유성 백업으로 지금까지이 작업을 수행 할 수있는 가장 쉬운 방법입니다.

    유성 백업으로 지금까지이 작업을 수행 할 수있는 가장 쉬운 방법입니다.

    sudo npm install -g meteor-db-utils
    meteor-backup [domain] [collection...]
    

    년 3 월 2015 당신은 여전히 ​​당신이 (이 문제가 해결 될 때까지)하지만 인출 할 모든 컬렉션을 지정해야합니다.

    아래 과거의 물건

    나는 일을 해요

    mongodump $(meteor mongo -U example.meteor.com | coffee url2args.cfee)
    

    함께 유성, url2args.cfee을 혼동하지 않도록 난도질 확장자를 가진이 작은 커피 스크립트와 :

    stdin = process.openStdin()
    stdin.setEncoding 'utf8'
    stdin.on 'data', (input) ->
      m = input.match /mongodb:\/\/(\w+):((\w+-)+\w+)@((\w+\.)+\w+):27017\/(\w+)/
      console.log "-u #{m[1]} -h #{m[4]} -p #{m[2]} -d #{m[6]}"
    

    (: // URL mongodump이 몽고를 받아들이는 경우는 유성 몽고 -U --mongodumpoptions이 옵션을 제공한다면 더 좋은, 또는 것)

  8. ==============================

    8.

    # How to upload local db to meteor:
    
    # -h = host, -d = database name, -o = dump folder name
    mongodump -h 127.0.0.1:3001 -d meteor -o meteor
    
    # get meteor db url, username, and password
    meteor mongo --url myapp.meteor.com
    
    # -h = host, -d = database name (app domain), -p = password, folder = the path to the dumped db
    mongorestore -u client -h http://production-db-a2.meteor.io:27017 -d myapp_meteor_com -p 'password' folder/
    

    어설 예외를 갖는 원격 DB에 로컬 DB를 업로드하는

    shubham@shubham-PC:$ mongorestore -u client -h http://production-db-a2.meteor.io:27017 -d myapp_meteor_com -p my_password local/
    2015-04-22T16:37:38.504+0530 Assertion failure _setName.size() src/mongo/client/dbclientinterface.h 219
    2015-04-22T16:37:38.506+0530 0xdcc299 0xd6c7c8 0xd4bfd2 0x663468 0x65d82e 0x605f98 0x606442 0x7f5d102f8ec5 0x60af41 
     mongorestore(_ZN5mongo15printStackTraceERSo+0x39) [0xdcc299]
     mongorestore(_ZN5mongo10logContextEPKc+0x198) [0xd6c7c8]
     mongorestore(_ZN5mongo12verifyFailedEPKcS1_j+0x102) [0xd4bfd2]
     mongorestore(_ZN5mongo16ConnectionStringC2ENS0_14ConnectionTypeERKSsS3_+0x1c8) [0x663468]
     mongorestore(_ZN5mongo16ConnectionString5parseERKSsRSs+0x1ce) [0x65d82e]
     mongorestore(_ZN5mongo4Tool4mainEiPPcS2_+0x2c8) [0x605f98]
     mongorestore(main+0x42) [0x606442]
     /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f5d102f8ec5]
     mongorestore() [0x60af41]
    terminate called after throwing an instance of 'mongo::AssertionException'
      what():  assertion src/mongo/client/dbclientinterface.h:219
    Aborted (core dumped)
    
  9. ==============================

    9.나는 지역에 라이브 DB를 복사 Rakefile이 간단했다.

    나는 지역에 라이브 DB를 복사 Rakefile이 간단했다.

    난 그냥 할 내 로컬 컴퓨터에 라이브 DB를 복원하려면 ...

    rake copy_live_db
    

    예컨대 myapp.meteor.com - 당신의 meteor.com의 이름으로 MyApp를 교체합니다.

    require 'rubygems'
    require 'open-uri'
    
    desc "Backup the live db to local ./dump folder"
    task :backup_live_db do
      uri = `meteor mongo myapp --url`
      pass = uri.match(/client:([^@]+)@/)[1]
      puts "Using live db password: #{pass}"
      `mongodump -h meteor.m0.mongolayer.com:27017 -d myapp_meteor_com -u client -p #{pass}`
    end
    
    
    desc "Copy live database to local"
    task :copy_live_db => :backup_live_db do
      server =  `meteor mongo --url`
      uri = URI.parse(server)
      `mongorestore --host #{uri.host} --port #{uri.port} --db meteor --drop dump/myapp_meteor_com/`
    end
    
    desc "Restore last backup"
    task :restore do
      server =  `meteor mongo --url`
      uri = URI.parse(server)
      `mongorestore --host #{uri.host} --port #{uri.port} --db meteor --drop dump/myapp_meteor_com/`
    end
    
  10. ==============================

    10.당신의 유성 배포 myAppName 사이트에 기존의 지역 MongoDB의 데이터베이스를 사용하려면 다음 MongoDB를 복원, 덤프해야합니다.

    당신의 유성 배포 myAppName 사이트에 기존의 지역 MongoDB의 데이터베이스를 사용하려면 다음 MongoDB를 복원, 덤프해야합니다.

    mongodump 위의 지침에 따라 (두 번째 단계를 대체하고 붙여 넣기 / 복사) 당신의 'mongorestore'를 생성하려면 다음을 실행하십시오 (경로를 기억)과 :

    CMD = 유성 몽고 -U myAppName.meteor.com | 꼬리 -1 | SED 's_mongodb : // \ ([\ A-Z0-9 -] * \) - (. * \) (. * \) \ ([A-f0-9 \ * \) @ \ / \ _mongorestore -u \ 1 -p \ 2 -h \ 3 -d \ 4_ '

    그때

    $CMD /path/to/dump 
    

    캔 대신 별도의 인수의 단일 URL 인수를 mongorestore?

  11. ==============================

    11.난 당신이 원격 SSHFS를 통해 파일 시스템을 마운트하고 나뿐만 아니라 믿는 폴더 다음 MongoDB를의 폴더 자체 또는 전체 유성를 동기화 할 rsync는 사용할 수 있다고 생각합니다. 이 증분 백업 및 잠재적으로 더 효율적으로 일을 같다. 이 등은 왜 당신이 데이터베이스도 동시에 다시 변경하지, 코드의 변화를 보내기 위해 같은 솔루션을 사용하는 것이 가능! (1 돌 2 새를 죽이는)

    난 당신이 원격 SSHFS를 통해 파일 시스템을 마운트하고 나뿐만 아니라 믿는 폴더 다음 MongoDB를의 폴더 자체 또는 전체 유성를 동기화 할 rsync는 사용할 수 있다고 생각합니다. 이 증분 백업 및 잠재적으로 더 효율적으로 일을 같다. 이 등은 왜 당신이 데이터베이스도 동시에 다시 변경하지, 코드의 변화를 보내기 위해 같은 솔루션을 사용하는 것이 가능! (1 돌 2 새를 죽이는)

  12. ==============================

    12.다음은 meteor.com 호스팅 사이트에서 데이터베이스를 덤프 할 수있는 간단한 bash는 스크립트입니다.

    다음은 meteor.com 호스팅 사이트에서 데이터베이스를 덤프 할 수있는 간단한 bash는 스크립트입니다.

    #!/bin/bash
    
    site="rankz.meteor.com"
    name="$(meteor mongo --url $site)"
    echo $name
    
    IFS='@' read -a mongoString <<< "$name"
    
    echo "HEAD: ${mongoString[0]}"
    echo "TAIL: ${mongoString[1]}"
    
    IFS=':' read -a pwd <<< "${mongoString[0]}"
    
    echo "${pwd[1]}"
    echo "${pwd[1]:2}"
    echo "${pwd[2]}"
    
    
    IFS='/' read -a site <<< "${mongoString[1]}"
    
    echo "${site[0]}"
    echo "${site[1]}"
    
    
    mongodump -u ${pwd[1]:2} -h ${site[0]} -d ${site[1]}\
              -p ${pwd[2]}
    
  13. from https://stackoverflow.com/questions/11024888/is-there-a-simple-way-to-export-the-data-from-a-meteor-deployed-app by cc-by-sa and MIT license