今日私は、私のデータベースを更新する方法を改善するための提案を他の人が私に与えることができるかどうかを知りました。データベースの更新を制御する
ここに問題があります。変更する必要があるたびに新しいスクリプトを保存するファイルが1つあります。たとえば、テーブルに新しい列を追加する必要があるとします。私は更新されたアプリケーションをクライアントに送信しようと思って、それをやった後
alter table CLIENTS
add AGE integer
を、そして彼のデータベース上でscript1.sql
を実行するために彼に尋ねる:私はscript1.sql
と呼ばれる私のファイルに次の行を追加します。それは私のためにうまく動作します。
このファイルが大きくなり始め、クライアントが新しいアップデートを受け取る必要があるときに問題が発生します。
クライアントはscript1.sql
ファイルを再度実行しますが、今度は更なる更新が行われます。彼は、データベースにすでにAGE
という名前の列が存在することを示すエラーを受け取ります。
最も大きな問題は、アプリケーションのバージョンを変更したときです。アプリケーションをApplication1からApplication2に更新する場合、スクリプトをscript1.sql
からscript2.sql
に変更します。
私のクライアントは、競合することなく正しいバージョンに到達するために、両方を実行する必要があります。 script1.sql
のほとんどすべてが彼のデータベースですでに処理されているので、彼はまた多くのエラーを取得します。
私が欲しいのは、葛藤に直面する機会をなくすことです。このプロセスは私のために働いていますが、いつも何らかの問題を引き起こしています。だから、誰かがどのようにしてよりうまくいくか考えているなら、私を助けてください。それがすでに作成されていない場合にのみ、ユーザーテーブルを作成します
CREATE TABLE IF NOT EXISTS users ...
:
ため
EXISTS
を使用する方法の詳細については、グーグルにする必要があります。 github.io/)を実行して、大規模なスクリプトを実行可能な小さなスクリプトに分割し、その実行をプロトコル化することで、2回目と3回目の新しいスクリプトのみを実行します –