問題タブ [sql-maven-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - MavenSQLプラグインの実行順序
SQLの実行順序に問題があります。
1つのディレクトリの下のテーブルごとに1つのSQLスクリプトファイルがあります。例:ディレクトリc:\SqlScriptsにuser.sqlとrole.sqlがあります。これらのSQLファイルを実行するためにSQLMavenプラグインを使用しています。
ロールテーブルにはユーザーテーブルへのForiegnキーがあり、プラグインがuser.sqlの前にrole.sqlを実行しようとしているため、実行は失敗します。c:\ SqlScripts * .sqlとして指定しているため、orderfile属性を使用できません。
この問題を解決するにはどうすればよいですか?
私は2つの解決策を見ます:
すべてのスクリプトを作成順に1つのファイルにマージします。ロールを作成するスクリプトは、ユーザーを作成するスクリプトの後にあります。
*ワイルドカードを削除し、実行順に属性内の各ファイルを指定します。
実行順序に従ってファイルの名前に番号を付けます(例:1_user.sql、2_role.sql)。「昇順」のorderfile属性を使用します(順序が適用されない可能性があるため、これが機能するかどうかはわかりません)。
よりエレガントなソリューションはありますか?
sql - sql-maven-sqlCommandで一重引用符をエスケープするプラグイン
私はMavenベースのプロジェクトを持っており、システムテスト用にDBをセットアップ/ティアダウンするためにsql-maven-pluginを使用しようとしています。私はsqlCommand要素を入れました:
CALL SOME_STORED_PROC('SYSTEST')
ただし、mavenビルドは次の例外を除いてこのSQLで失敗します。
org.apache.maven.lifecycle.LifecycleExecutionException:
ERROR: Function 'SOME_STORED_PROC(UNKNOWN)' does not exist
Unable to identify a function that satisfies the given argument types
You may need to add explicit typecasts
ストアドプロシージャの引数を特別な方法でエスケープする必要があるのではないかと思います。ドキュメント/例が見つかりませんでした。
何かご意見は?
Aviad
sql - Maven: sql-maven-plugin を使用した PL/SQL スクリプトでエラー PLS-00103 がスローされる
sql-maven-plugin を使用して、Oracle 11 データベースで PL/SQL スクリプトを実行しようとしています。スクリプトは有効な PL/SQL ですが (私の知る限り)、実行すると PLS-00103 エラーが発生します。
SQL スクリプト: (drop_all_tables.sql)
そして私のプラグイン構成:
そして、これは Maven 実行からの出力です。
sql - H2DB - CREATE TABLE リクエストで SQL ON UPDATE をスクリプト化する
ON UPDATE
H2 データベースでCREATE TABLE
リクエストを実行する方法。
環境:
プロジェクトの h2 データベースにテーブルを生成するために sql-maven-plugin (1.5) を使用しています。
しかし、スクリプト sql を呼び出すと、org.h2.message.DbException.getJdbcSQLException
.
私のスクリプト:
postgresql - Maven Mojo sql:execute を使用したエラー
mvn
TL;DR バージョン: Maven Mojo SQL プラグインを使用して、コマンドライン経由で DB スキーマ内の特定のテーブルを自由に作成/削除 (またはそれらのテーブルのデータをロード) できるようにしたいと考えています。どのように?
私は長年の Java 開発者ですが、ほとんどの場合、Javaant
ベースの世界に住んでいます。のパワーと明快さant
、そしてすべてをコントロールできるところが好きです。しかし、私の新しい仕事では、使用するプッシュがありますmaven
。そこで、自宅で取り組んでいるプロジェクトを使って学ぶことにしました。
ant
私が別の個人プロジェクトで設定したことの 1 つは、コマンド ラインから Postgres データベースを完全に設定および破棄する機能です。テーブル、シーケンス、および統合テスト データを個別に、またはまとめてスライス アンド ダイスできます。確かに、それは私が何兆ものant
ターゲットを持っていることを意味しますが、それは非常にうまく機能します. 私はこれが好き; それは何年にもわたって私に非常に役立ってきました。
週末に Maven でこれを実現する方法を調べていたところ、Mojo SQL Maven Pluginを見つけました。使用法ページ(実際には説明のない 1 つの半例にすぎないため、この用語を大まかに使用しています) とサンプルページpom.xml
を確認した後、ファイルにいくつかの変更を加えることができました。例 (postgressql) のいくつかの明らかなタイプミスを修正し、PostgreSQL JDBC ページを参照して、JDBC 接続文字列が正しいことを確認しました。pom.xml
以下に(有罪を保護するために変更された)すべてを貼り付けます。
データベースを作成していないため\l
、PG コマンドラインに表示されません。
したがって、実行するmvn sql:execute
と、データベースが作成されると予想されます...または、エラーが発生しても続行するように設定されているため、少なくともdrop-db-before-test-if-any
タスクに失敗しないでください。しかし、もちろん:
最後の行に記載されているエラー ページは役に立ちません。Maven自体ではなく、プラグインがエラーを引き起こしたことを示しているだけです。
-X
それでは、スイッチで実行してみましょう。エラーの興味深い部分を投稿します。
でも、でも、でも… <onError>continue</onError>
!
だから、質問に:
- 私は何を間違っていますか?それは私の期待ですか、それとも私のコードですか?
create-person.sql
ファイルがあることに気付くでしょう。例から、create-address.sql
. しかし では、参照整合性の順序を念頭に置いて Ant タスクを実行する限り、テーブルとは別にテーブルant
を作成することができます。そのようなことは可能ですか?もしそうなら、どのように?address
person
maven
冗長で申し訳ありません。ご協力いただきありがとうございます。
maven - sql-maven-plugin 作成関数
ローカルでテストするために、hsqldb と組み込みの jetty インスタンス (経由) maven を使用しています。アプリケーションは本番環境で mysql データベースを使用します。UNHEX()
特定のクエリに対してmysql を呼び出す必要があります。関数を呼び出す hsqldb のラッパーを作成するにはどうすればよいですかHEXTORAW()
。以下を試してみましたが、sql-maven-plugin エラーが発生しました。
sql-maven-plugin エラー:
プロジェクト rms で目標 org.codehaus.mojo:sql-maven-plugin:1.5:execute (default-cli) を実行できませんでした: 予期しないトークン: ステートメントの FUNCTION [[エラー] CREATE FUNCTION]
ラッパー関数を作成するにはどうすればよいですか?
java - sql-maven-plugin が正しい mysql データベースにテーブルを作成しない
以下のコードのさまざまなバリエーション (データベース接続の詳細をタグに抽出することを含む) を試しましたが、何をしてもテーブルが間違ったデータベースに作成されます。
「use autofi」データベースも実行しようとしましたが、どちらも機能せず、テーブルは別のデータベースに作成されたままです。
テンプレートとして maven-sql-plugin の例を使用しましたが、どちらも機能しませんでした。
私は何を間違っていますか?
ありがとう、ショーン
mysql - 複数の区切り文字を含むsql-maven-plugin
sql-maven-pluginを使用して、いくつかのデータベースでいくつかのMySQLスクリプトを実行しています。同じSQLスクリプトで、テーブル、データ、トリガー、イベント、およびストアドプロシージャを展開したいと思います。
INSERTまたはCREATEの場合はを使用するため、行区切り文字に問題がありますが、トリガーの場合は、たとえば、で;
区切り文字を変更する必要があります。DELIMITER //
プラグインで区切り文字を変更できることは知っていますが、すべてのスクリプトに適用できます。一意のスクリプトの一部についてのみ区切り文字を変更したいと思います。
これは私のMaven構成です:
maven - Maven プラグイン java.library.path
maven-surefire-plugin は、構成オプションjava.library.path
によるプロパティの使用をサポートします。<argLine>
jTDS ドライバーを Windows 認証 (ntlmauth.dll が必要) で使用するには、java.library.path
プロパティを sql-maven-plugin (構成オプションがない) に渡す必要があります。<argLine>
よろしくお願いします。