バージョン違いによるレプリケーションまとめ。

バージョンの異なるCouchDB同士でのレプリケーションは基本的にはやるべきではないのだが、とは言っても実際のところどのケースがうまく行って、どのケースがうまく行かないのか気になったので調べてまとめてみた。対象は0.11.0, 1.0.1, 1.0-androidと、1.0.1のCouchOneの環境。

レプリケーション実行 レプリケーション元 レプリケーション先 データ内容 成否
0.11.0 1.0.1 0.11.0 ドキュメントのみ OK
0.11.0 1.0.1 0.11.0 デザインドキュメント含む OK
0.11.0 0.11.0 1.0.1 ドキュメントのみ OK
0.11.0 0.11.0 1.0.1 デザインドキュメント含む OKは返るがデザインドキュメントはレプリケーション不可
レプリケーション実行 レプリケーション元 レプリケーション先 データ内容 成否
1.0.1 1.0.1 0.11.0 ドキュメントのみ OK但し、レスポンスすぐ返らない
1.0.1 1.0.1 0.11.0 デザインドキュメント含む NG
1.0.1 0.11.0 1.0.1 ドキュメントのみ NG。エラーになるがドキュメントのレスポンスはできる
1.0.1 0.11.0 1.0.1 デザインドキュメント含む NG。デザインドキュメントは失敗する
レプリケーション実行 レプリケーション元 レプリケーション先 データ内容 成否
1.0.1 1.0.1 1.0.1 ドキュメントのみ OK
1.0.1 1.0.1 1.0.1 デザインドキュメント含む OK
レプリケーション実行 レプリケーション元 レプリケーション先 データ内容 成否
1.0-android 0.11.0 1.0-android ドキュメントのみ NG
1.0-android 0.11.0 1.0-android デザインドキュメント含む NG
1.0-android 1.0-android 0.11.0 ドキュメントのみ NG
1.0-android 1.0-android 0.11.0 デザインドキュメント含む NG
レプリケーション実行 レプリケーション元 レプリケーション先 データ内容 成否
0.11.0 0.11.0 1.0-android ドキュメントのみ OK
0.11.0 0.11.0 1.0-android デザインドキュメント含む OK
0.11.0 1.0-android 0.11.0 ドキュメントのみ OK
0.11.0 1.0-android 0.11.0 デザインドキュメント含む OK
レプリケーション実行 レプリケーション元 レプリケーション先 データ内容 成否
0.11.0 0.11.0 CouchOne ドキュメントのみ OK
0.11.0 0.11.0 CouchOne デザインドキュメント含む OK
0.11.0 CouchOne 0.11.0 ドキュメントのみ OK
0.11.0 CouchOne 0.11.0 デザインドキュメント含む OK
レプリケーション実行 レプリケーション元 レプリケーション先 データ内容 成否
1.0-android CouchOne 1.0-android ドキュメントのみ NG。Replication failed: could not open …が返る
1.0-android CouchOne 1.0-android デザインドキュメント含む NG
1.0-android 1.0-android CouchOne ドキュメントのみ NG
1.0-android 1.0-android CouchOne デザインドキュメント含む NG
レプリケーション実行 レプリケーション元 レプリケーション先 データ内容 成否
1.0.1 1.0.1 1.0-android ドキュメントのみ OK
1.0.1 1.0.1 1.0-android デザインドキュメント含む OK
1.0.1 1.0-android 1.0.1 ドキュメントのみ OK
1.0.1 1.0-android 1.0.1 デザインドキュメント含む OK
レプリケーション実行 レプリケーション元 レプリケーション先 データ内容 成否
1.0-android 1.0.1 1.0-android ドキュメントのみ OK
1.0-android 1.0.1 1.0-android デザインドキュメント含む OK
1.0-android 1.0-android 1.0.1 ドキュメントのみ OK
1.0-android 1.0-android 1.0.1 デザインドキュメント含む OK

追記 CouchDB 1.0.1と1.0.2間でのレプリケーション

これはCouchDB 1.0.1同士でやったときと同様、すべてうまく行った。