1

SubSonic 3 ActiveRecord を使用して ASP.NET MVC プロジェクトを開始しています。主キー ID を持つテーブル Users を追加し、T4 ファイルを再コンパイルして User クラスを生成しました。

開発を進めながら、いつでもデータベースを再生成/移行できるようにしたいと考えています。データベースにテーブルと関係を作成し、ActiveRecord クラスを再生成し、http://subsonicproject.com/docs/3.0_Migrationsで説明されているように移行を行う必要があるようです。移行を定義する古い 2.x の方法は、もはや利用できないようです。

モデルクラスを変更することにより、データベースではなくコードから開発を推進し、SimpleRepository を使用せずにそれに応じてデータベースを移行する方法はありますか? 生成されたコードをソース コード リポジトリに入れたくありませんが、そうしないとデータベース スキーマが失われます (手動でエクスポートして保存しない限り)。

4

3 に答える 3

3

SubSonic 3をDALとして引き続き使用し、SubSonic2.2に移行を生成させることができます。必要なのはsonic.exeと、移行ファイルを実行するための依存関係だけです。

より正確には、DataLayerプロジェクトにフォルダーMigrationsがあります。これは、すべての移行ファイルを保持しますが、BuildActionをnoneに設定します。したがって、構文の強調表示があります(ただし、BuildActionをコンパイルに戻さない限り、エラーチェックは行われません)が、コードによってプロジェクトが混乱することはありません。

もちろん、それらを独自のプロジェクトに保持することもできます。ただし、この方法でバージョン管理を行い、現在のDALが移行バージョンと一致していることを確認するのが好きです。

さらに、構成ファイルに(app.config / web.configではなく)migration.configという名前を付け、このコマンドラインを使用して移行を実行します。

Command:           /path/to/sonic.exe  
Arguments:         migrate /config migration.config
Working Directory: $(SolutionDir)MyProject.Datalayer

sonic.exeが探している設定ファイルを上書きする/configスイッチに注意してください。

于 2009-07-02T05:06:52.707 に答える
2

SimpleRepository を見ることができます。

http://subsonicproject.com/docs/Simple_Repo_5_Minute_Demo

于 2009-07-02T08:10:26.777 に答える
1

リンク先のドキュメントには、次のように記載されています。

「結論: データベースの設計に関心のある開発者には、移行は向いていないかもしれません」

あなたが望む設計の詳細については(そして私もそうするでしょう)、移行は適切ではないのではないかと思いますか?

于 2009-07-01T16:24:50.247 に答える