3

私はdjangoフレームワークを使用したプロジェクトに取り組んでおり、バージョン管理システムを使用してコードを他の人々と同期しています。しかし、データベースを整理する方法がわかりません。django では、プロジェクトに携わっている人なら誰でも、django モデルを変更し、「syncdb」にモデル オブジェクトを db と同期するように指示できます。しかし、他の人はこの変更について気に留めておらず、コードのリビジョンが機能しない可能性があります。この問題を解決する方法をいくつか教えてください(おそらく、別のデータベースまたは別のもの)。

ありがとう、そして私の英語を許してください:)

4

7 に答える 7

4

あなたは実際にあなたのプロジェクトの人々と話をしなければなりません.

誰かがデータベース モデルを変更した場合、その変更について実際に他の全員に伝える必要があります。これは Django の問題ではありません。

Django を使用しない SQL データベースについて考えてみましょう。DBA がテーブルを削除するときは、データベースを変更したことを全員に伝えなければなりません。そうしないと、テーブルを使用するすべてのプログラムが壊れます。

モデルの定義は特別であり、これを変更できる人は誰でも他の人に伝えなければなりません。

于 2008-10-11T15:40:56.073 に答える
3

バージョン管理下にある DB の初期バックアップが必要です。その後、すべての変更スクリプトを同じバージョン管理に配置する必要があります。このようなもの:

/データベース (リポジトリ内)

  • 初期バックアップ
  • Script1_date.sql
  • Script2_date.sql

...

于 2008-10-11T15:46:46.917 に答える
1

deltasqlも見てください。http://www.gpu-grid.net/deltasql(ユーザー名:adminパスワード:testdbsync)でテストし、http ://sourceforge.net/projects/deltasqlciaoからダウンロードできます :-)

于 2009-01-29T13:58:37.660 に答える
1

あなたの問題がよくわかりません。ただし、Django では、syncdb は新しいテーブルのみを作成することに注意してください。既存のテーブルは変更されません。

たとえば、新しいフィールドを追加しただけでは、syncdb は何もしません。

于 2008-10-11T18:38:14.793 に答える
1

実際、代替案を見て、誰も南に言及していないことに驚かされることがよくあります。

http://south.aeracode.org/

それは最高の移行アプリのようです...おそらく何か重要なものが欠けているかもしれませんが、一緒に仕事をするのはとてもいいと思います...

于 2009-01-12T05:46:00.980 に答える
1

興味があります...MDF および LDF ファイルをソース管理下に置くとどうなりますか? もちろん、テーブルが空で、データベースの構造だけを持っている場合...

于 2008-10-16T15:44:50.820 に答える
0

移行が必要なようです。

例: http://www.aswmc.com/dbmigration/

また、スキーマが期待どおりであることを実際にテストする機能単体テストを追加することもできます。これにより、テストが失敗したときに、それがスキーマの変更であることを確認し、それがアプリの他の部分に影響を与えるかどうかを監査できます。そうでない場合は、新しいスキーマを考慮してテストを修正してください。

于 2008-10-11T15:41:17.180 に答える