2015-11-18 15 views
6

現在Sailsバージョン0.10.5にある従来のSails.JSプロジェクトがあります。私はこのプロジェクトをSails 0.11.x以降にアップグレードしたいと思いますが、キャッチがあります。このプロジェクトはネイティブモバイルアプリのバックエンドとして機能するので、新しいsails.io.jsとsocket.ioクライアントライブラリをあなたのウェブサイトにリンクすることができるウェブサーバーをアップグレードするのとは異なり、ユーザーはネイティブアプリをアップグレードすることができません。Sails.JSからのアップグレードパス0.10から0.11下位互換性の維持

私はこの問題に直面した唯一の人だから不合理に思えるので、私はアップグレードをシームレスに進めるために考えなかった素晴らしいものがあるかどうかをコミュニティに質問しました。

私が考えたアイデアがあります:サブドメインを使用してアプリケーションの

  1. ラン二つのバージョン(https://v2.domain.com/api/..を。)。これは明らかに最も明白な解決策ですが、かなりの量のサーバー構成が必要です。現在、環境をカスタマイズする機能が制限されているPAAS上で実行しているため、スイッチングプロバイダーが必要になる可能性があります。

    このルートの作業に加えて、コードベースで何をすべきかの決定があります。 2つのセールバージョンのコードの2つのブランチを維持することができますが、それはバグを2倍とエラーの可能性の2倍に修正することを意味します。あるいは、実行中のセイルのバージョンを確認するためのコードに規定を入れることもできます。これらはどちらもきれいには見えませんが、もし私が2つの選択肢のうちの2番目の選択肢を選ぶと思うのですが、

  2. sails.jsのコアコードを調べて、socket.io 0.9とsocket.io 1.0を同時に並べて実行する方法を見つけてください。これにより、0.9サポートを無効にする前に、すべてのユーザーにモバイルアプリを更新させることができます。これにも明らかな落とし穴がありますが、その中で首脳はフレームワークレベルでこのような包括的な変更を行っています。

私は、このような状況でやっていることの他に、いくつかの洞察をみたいソリューションはちょうど帆0.10.5に残っているならば、それは大丈夫ですが、私は追加の利益を取得してみたいです現在使用しているセミホームのスピンソリューションではなく、v.1.0向けにリリースされたネイティブのSocket.IOライブラリです。セキュリティと機能のアップデートを今後も続けていくこともいいでしょう。

+0

私たちは同じ問題に直面しています。古いsocket.ioクライアント(アプリにパッケージ化されています)を使用している何百ものクライアントアプリケーションがあります。古いクライアントは0.10台、新しいサーバは0.12台です。 あなたがソリューションを実装したかどうか、それがどうやってあなたのために行ったのだろうか? –

+0

これで何も見つかりませんでしたが、2台のサーバーを簡単に実行しました。それは非常にイライラしていましたが、移行を行う唯一の確実な方法でした。申し訳ありませんが私はより多くの支援ができません。 – Trey

答えて

0

この問題の唯一の確実な解決策は、現在のサーバーをベースとするnginxリバースプロキシを設定し、作成された各パスの前に/ v2パス接頭辞が付いた別のサーバーを置いて、ユーザーを/ v2両方のサーバーに同じgit repoを使用することをお勧めしますが、必要に応じて両方に新しい変更をマージできるように、別のブランチにそれらを保持してください。