2016-04-20 10 views
1

私はAzureモバイルサービスを開発しています。開発中にデータモデルが大きく変更されたため、コードマイニングを実装しました。 Azure Mobile Servicesのデフォルトの動作は、データモデルが変更されるたびにバッキングSQLデータベーステーブルを削除することです。Azureモバイルサービスからアプリケーションサービスへの混乱

このモバイルサービスはまだ稼働していませんが、私は新しいAzure Appサービス(モバイルアプリケーション)に移行したいと思います。私が好きなようにTableControllerなどを稼働させるために必要な調整をすべて完了しました。それら。

明らかにApp Serviceへの最初のデプロイでは、データモデルの変更について心配する必要はありませんが、いつかは何かを変更するつもりです。 古いAzure Mobileサービスのコードを最初に移行することに関する記事はたくさんありますが、新しいサービスのためのものはないようです。

驚くべきことに、Azureポータルでは、このサービスに割り当てられたSQLサーバーインスタンスがないように見えるため、新しいAppサービスはSQLサーバーによってサポートされていないようです。

だから私の質問は以下のとおりです。

1)は、SQLサーバーに裏打ちされた新しいAzureのアプリケーションサービスですか?もしそうなら、私はAzureのポータルで接続の詳細を取得できないのですか?

2)SQLサーバーによってバックアップされている場合、データを失うことなくモデルの変更を行う方法。

私が検索し、このためのinterwebs上で検索、ないストレートな答え(情報の単なる一般的な不足)

感謝

答えて

2

1)はいはありそうですしていません。アプリケーション設定の接続文字列を参照してください

2)Nodeを実行している場合は、ドロップ/作成ではなく、ALTER TABLEが実行されます。 ASP.NETを実行している場合は、Entity Frameworkによってバックアップされているため、標準のEFルールが適用されます。また、あなたのApp_Start/AzureMobile.cs(または起動ロジックが含まれているものは何でも、ファイル名)

// Initialize the database with EF Code First 
    // Database.SetInitializer(new AzureMobileInitializer()); 
    Database.SetInitializer<MyDbContext>(null); 

でこれを使用して、テーブルを管理フレームワークをオフにすることができますコメントアウト行は私のオリジナル初期化子です。コメントされていないバージョンは、データベースに何も変更を加えない新しいバージョンです。これを行うと、モデルのデータベースを更新するためにSQLの変更を行う責任があります。私は現在、https://shellmonger.comで "30日ZUMOの" ブログのシリーズをやってる

-

+0

アプリケーション設定に接続文字列がないため、私は混乱しています。アプリケーションサービスは間違いなく私のデータを返すので、どこかに格納します –

+0

その場合、あなたはweb.configにそれらを持たなければなりません。値を見るには、あなたのKuduサイトに行きます。 AzureのポータルでTools - > Kuduに移動するか、your-site.scm.azurewebsites.netにアクセスしてください。そこに、すべての環境変数を見ることができます。 MS_TableConnectionStringを探します。 –

+0

MS_TableConnectionStringはKuduページの環境変数に含まれていません –

0

OK(おそらく上旬)私は、現在のノードをカバーするんだけど、私は最終的にはASP.NETに取得します、I Adrian Hallの答えの助けを借りて、最終的にこれの底に達しました。

問題は、ドキュメントが不十分で、Visual Studioで不適切な「新規プロジェクト」ウィザードがあり、すべてが期待どおりに動作するという私の前提の組み合わせです。

まず、私はAzureポータルではなく、Visual StudioでApp Serviceモバイルアプリを作成しました。その後、Visual Studioから正常に展開しましたが、オンラインでより多くのセットアップを行う必要があることに気づいていませんでした。

基本的に、作成されたAppサービスにはデフォルトでデータベースがありません(Visual Studioの新しいプロジェクトウィザードでデータベースの詳細が表示されないことが原因と思われます)。

azureポータルで新しいデータベース接続を手動で設定する必要があります。必要に応じて新しいSQLデータベースを作成することもできます。

この問題は、クライアントコードをオフライン同期を使用するように設定していたため、クライアントアプリケーションを起動するたびに以前のデータが表示されました。サーバープロジェクトには、データストレージ。事実、私のローカルPushAsyncは実際に何もしていませんでした。

データ接続が正しく設定されたので、すべてがAdrian Hallsの回答と一線を画しているようです。

関連する問題