2009-07-01 12 views
2

私はSubSonic 3 ActiveRecordを使用してASP.NET MVCプロジェクトを開始しています。プライマリキーIDと再コンパイルされたT4ファイルを持つユーザーをテーブルに追加して、ユーザークラスを生成しました。SubSonic 3 ActiveRecordの移行の定義

私は開発に合わせて、いつでもデータベースを再生成/移行できることを確認したいと思います。データベースにテーブルとリレーションシップを作成し、ActiveRecordクラスを再生成し、http://subsonicproject.com/docs/3.0_Migrationsに記載されているようにマイグレーションを実行する必要があるようです。移行を定義する古い2.xの方法は、もはや利用可能ではないようです。

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

答えて

4

引き続きSubSonic 3をDALとして使用して、SubSonic 2.2でマイグレーションを生成させることができます。 sonic.exeが必要なだけで、移行ファイルを実行するには依存関係があります。

もっと正確に言えば、マイグレーションファイルをすべて保持するが、BuildActionをnoneに設定したDataLayer Projectには、マイグレーションフォルダがあります。だから私はSyntax Highlightingを持っていますが(コンパイルするためにBuildActionを設定しない限りエラーチェックはしませんが)、コードは私のプロジェクトを混乱させません。

もちろん、それらを独自のプロジェクトに保存することもできます。しかし、私はこれをバージョン管理下に置いて、現在のDALがマイグレーションバージョンと一致していることを確認するのが好きです。

また、設定ファイルmigration.config(app.config/web.configではなく)に名前を付け、このコマンドラインを使用してマイグレーションを実行しました。

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

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

0

あなたがにリンクされたドキュメントは、状態を行います。

「ボトムライン:あなたはデータベース設計について懸念している開発者であれば、移行はあなたのためではないかもしれません」

を私は細部のためにということを疑いますあなたが望むデザイン(と私もそうです)、移行は適切ではないかもしれませんか?

+0

:私は、データベースの設計について特に心配していないと私はむしろ手でマイグレーションを書くよりも、コードから、それをドライブしたいが、私SubSonic Active Recordを使用しているときにそれを行う簡単な方法はありません。 – glebd

関連する問題