ホスト名に応じて特定のデータベースを使用するマルチテナント MVC4 アプリケーションを構築しました。
このサイトは、すべてのお客様のホスト名にバインドされています。
- 訪問者が「domain1.com」にアクセスすると、「domain1.com」データベースが使用されます。
- 訪問者が「domain2.com」にアクセスすると、「domain2.com」データベースが使用されます。
自動移行は通常、Application_Start() に配置されます。
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyProject.Models.MyProjectContext, MyProject.Migrations.Configuration>());
これにより、アプリケーションの開始時に移行が実行されます。ただし、私のアプリケーションは複数のホスト名に応答するため、1 つのデータベースのみが移行されます。別のホスト名に切り替えると、アプリケーションがサーバーのメモリに既に読み込まれているため、そのデータベースは移行されません。
上記のコード行を Session_Start() に移動することでこれを解決しました。
これは良い習慣ですか?より良い解決策はありますか?
前もって感謝します、
アンドレアス