2017-07-07 1 views
0

最後のリビジョンのみをcouchDBからpouchDBに複製しようとしていますが、すべてのrevsを持つ転送文書です。初期の例:CouchDBからPouchDBに有用なデータのみを転送する方法

var replicationOptions = { 
    doc_ids: null 
}; 

this.$get = function (pouchDB, arrayUtils, $rootScope, modelUtils,appConfig) { 

    function initDB() { 
     userLocalDB = pouchDB("mobile_users", { 
      revs_limit: 1, 
      auto_compaction: true, 
      adapter: 'cordova-sqlite', 
      iosDatabaseLocation: 'Library', 
      androidDatabaseImplementation: 2 
     }); 
     userRemoteDB = pouchDB(appConfig.couchDBServerUrl+"mobile_users", {skipSetup: true}); 
     userRemoteDB.login("mobile", "fakepass"); 
    }... 

レプリケーションコード:はconsole.logの進歩の

function startReplication(username) { 
     replicationOptions.doc_ids = [_prefixId + username]; 
     console.log("replicationOptions", replicationOptions) 

     return userRemoteDB.replicate.to(userLocalDB, replicationOptions).$promise 
      .then(null, null, function (progress) { 
       console.log('user replication status', progress); 
      }) 
      .then(function (result) { 
       console.log('user replication resolved with', result); 
       return true 
      }) 
      .catch(function (reason) { 
       console.log('user replication exception', reason); 
       return startReplication(username); 
      }) 
    } 

結果( 'ユーザーのレプリケーション状態'、進捗状況)。

user replication status Object {change: Object} 
change: Object 
doc_write_failures: 0 
docs: Array(604) 
docs_read: 604 
docs_written: 604 
errors: Array(0) 
last_seq: 452349 
ok: true 
start_time: "2017-07-07T18:37:34.353Z" 

私は長い間答えを探していますが、どのような解決策も効果的でした。私はcouchDBからの転送を望んでいない。 2GB/3gの接続で25kb x 603本の無駄なデータが転送され、有用なデータのみを転送するのに役立ちます。

OBS:Fauxtonコンパクト&クリーンは、このプロセスの前に使用された

+0

CouchDBに同期するPouchDBを変更しますか?あるいは、すべての変更はCouchDBから始まり、PouchDBのコピーは読み取り専用ですか? – Flimzy

+0

両サイドに変更があります。ほとんどの変更はCouchDB –

+0

からのものです。その場合、追加の回転数は無駄なデータではありません。彼らは紛争解決に使用されます。 – Flimzy

答えて

0

あなたは

その後のダンプファイルからのCouchDB/PouchDBにpouchdb-load

への負荷書類のようなものを使用することができ、同期いつものようにボブさんはあなたの叔父さんです。

+0

あなたのヒントありがとう。私はそれをテストします –

+0

私はロードダンプファイルを望んでいないので、残念ながら、それは回避策ですが、load couchDB doc。 pouchdb-loadでこれを実現するには、この構造体(CouchDB/PouchDB)からファイルをインクルードしてからロードする必要があります。 –

関連する問題