(ソースコントロールを使用して)OrientDBでスキーマを管理する方法を調べています。 OrientDBの "bin/console.sh"を介してクラスと関数を作成するためのSQLスクリプトがあります。私のスクリプトは、CREATE...
ステートメントがもう一度失敗するため、新しいデータベースを作成するためにのみ機能します。変更が加えられたときにスクリプトを再実行できるようにしたいと思います。では、条件付きでCREATE CLASS
やCREATE PROPERTY
のようなものをどのように行うことができますか?OrientDBでは、データベーススキーマの作成/更新SQLスクリプトの作成方法は?
はこれまでのところ、私は、このような文をスキップするIF
を使用してみましたが、IF
はscript sql...end
ブロック内許可され、あなたがそのようなブロック内の任意のCREATE...
文を入れしようとすると、エラーが発生します:「スキーマを変更することはできませんトランザクションはアクティブです。私たちが考え出したのは、set ignoreErrors true
を使用することですが、それでもエラーはスローされるので理想とはほど遠いため、実際の問題と予想されるエラーを区別することは非常に困難になります。
私は間違った質問をしています(つまり、SQLスクリプト以外のスキーマのソース管理を管理する方が良い方法です)。
Java APIで管理できます。参照:http://orientdb.com/docs/last/Schema.html –
私は通常2つのファイルを持っています。最初のものにはスキーマ全体が含まれています(システムを最初からインストールするときに実行します)。また、私が部分的な更新を実行するために使用する2番目のもの(例えば、クラスの属性を変更するか、それをインデックスする) – AVK