私は複数の開発者を含むプロジェクトに取り組んでおり、私たちはDVCSを使用していますので、各開発者は割り当てられた機能ブランチで作業します。つまり、機能ブランチは最新のdevelop
ブランチから分岐しています。 develop
支店では、DatabaseHandler
でDBのバージョンはAndroid:DBバージョンの制御
プライベート静的最終int型のDATABASE_VERSION = 2です。
私の機能ブランチでは、新しいテーブルを作成する必要があります。だから私はバージョンを3に増やす必要があるので、CREATE_APPLIANCE_TABLE
ステートメントを実行するにはonUpgrade
に以下を含めることができます。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.d("Database onUpgrade", "Old is: " + oldVersion + ". New is: " + newVersion);
switch(oldVersion) {
case 1:
db.execSQL(CREATE_USER);
case 2:
db.execSQL(CREATE_APPLIANCE_ACTIVITY); // for version 3
}
}
私の懸念は、別の開発者も新しいテーブルを作成する必要があり、彼は私と同じプロセスを実行するかどうかです。彼は彼のフィーチャーブランチのバージョンを3に増やしますか?もしそうなら、私たちのどちらかあるいは両方が私たちのフィーチャーブランチを閉じてそれをdevelop
にマージしたときの次のステップは何でしょうか?同じファイルを編集したので、競合する可能性があります。だから、develop
ブランチでは、バージョンは3か3か?
ありがとうございます。 :)
これは、両方のファイルが「開発」にマージされると、データベースのバージョンは3になりますか?当初の開発では2でしたが、私たちの個別機能では、私たちの機能に1つの新しいテーブルを追加する必要があるため、3に増やしました。 –
もしあなたが両方とも3になったら3になるでしょう。それを2にしても3にすると、それは3 –
になります。私たちは両方とも 'onUpgrade'を実行するために3としました。さて、助けてくれてありがとう! –