问题标签 [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.

0 投票
1 回答
1361 浏览

sql - Maven SQL插件执行顺序

我在订购 sql 执行时遇到了一些问题。

我们在一个目录下的每个表都有一个 sql 脚本文件。例如:目录 c:\SqlScripts 中有 user.sql 和 role.sql。我们正在使用 sql maven 插件来执行这些 sql 文件。

角色表有一个用户表的 Foriegn 键,执行失败,因为插件试图在 user.sql 之前执行 role.sql。我不能使用 orderfile 属性,因为我们指定为 c:\SqlScripts*.sql。

我该如何克服这个问题?

我看到了 2 个解决方案:

  1. 将所有脚本按创建顺序合并到一个文件中,创建角色的脚本在创建用户的脚本之后。

  2. 去掉 * 通配符,按执行顺序指定属性中的每个文件。

  3. 根据执行顺序对文件的名称进行编号,例如:1_user.sql、2_role.sql 并使用 'ascending' orderfile 属性(但不确定这是否可行,因为可能无法应用排序)

还有更优雅的解决方案吗?

0 投票
1 回答
494 浏览

sql - sql-maven-plugin 在 sqlCommand 中转义单引号

我有基于 maven 的项目,我尝试使用 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

我怀疑存储过程的参数需要以某种特殊方式进行转义。我找不到任何文档/示例。

有什么想法吗?

阿维亚德

0 投票
1 回答
8995 浏览

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 执行的输出:

0 投票
3 回答
4192 浏览

sql - H2DB - CREATE TABLE 请求中的脚本 SQL ON UPDATE

如何在 H2 数据库ON UPDATE中执行请求。CREATE TABLE

语境:

我正在使用 sql-maven-plugin (1.5) 在我的项目的 h2 数据库中生成一个表。

但是当我调用脚本 sql 时,我有一个org.h2.message.DbException.getJdbcSQLException.

我的脚本:

0 投票
1 回答
10912 浏览

postgresql - 使用 Maven Mojo sql:execute 时出错

TL;DR 版本:我希望能够使用 Maven Mojo SQL 插件通过mvn命令行随意创建/删除我的数据库模式中的任何给定表(或为这些表加载数据)。如何?


我是一名长期的 Java 开发人员,但在大多数情况下,我一直生活在一个ant基于 Java 的世界中。我喜欢 的力量和明确性ant,以及它给我对一切的控制。但是,在我的新工作中,有一种使用maven. 所以我决定使用我在家里做的一个项目来学习它。

ant我在另一个个人项目中设置的一件事是能够从命令行完全设置和拆除我的 Postgres 数据库。我可以单独或共同对任何我喜欢的表、序列和集成测试数据进行切片和切块。当然,这意味着我有大约数百万个ant目标,但效果很好。我喜欢这个; 多年来,它对我很有帮助。

在周末研究如何在 Maven 中完成此任务时,我发现了Mojo SQL Maven 插件。在查看了使用页面(我松散地使用该术语,因为它实际上只是一个没有解释的半示例)和示例页面之后,我能够对我的pom.xml文件进行一些更改。我在示例 (postgressql) 中修正了一些明显的拼写错误,并引用了PostgreSQL JDBC 页面以确保我的 JDBC 连接字符串正确。我将在pom.xml下面粘贴所有(修改以保护有罪者):

现在,由于我还没有创建数据库,所以它不会出现在\lPG 命令行中:

因此,当我运行时mvn sql:execute,我希望我的数据库能够被创建......或者至少不会在drop-db-before-test-if-any任务上失败,因为它被设置为在出错时继续。但是当然:

最后一行提到的错误页面没有帮助;它只是告诉我是插件导致了错误,而不是 Maven 本身。

所以让我们用-X开关运行它。我将发布错误中有趣的部分:

但是,但是,但是…… <onError>continue</onError>

所以,对于问题:

  1. 我究竟做错了什么?是我的期望,还是我的代码?
  2. 你会注意到我有一个create-person.sql文件。我从示例中知道我可以在那里有多个文件,例如create-address.sql. 但是在 中ant,我有能力address从表中单独创建person表,只要我执行 ant 任务时牢记参照完整性的顺序。有这样的可能maven吗?如果是这样,怎么做?

抱歉冗长,并提前感谢您的帮助。

0 投票
1 回答
548 浏览

maven - sql-maven-plugin 创建函数

我正在使用 hsqldb 和嵌入式码头实例(通过)maven 进行本地测试。该应用程序将在生产环境中使用 mysql 数据库。我需要UNHEX()为特定查询调用 mysql。如何为 hsqldb 创建一个可以调用它的HEXTORAW()函数的包装器。我尝试了以下方法,但出现了 sql-maven-plugin 错误。

sql-maven-plugin 错误:

无法执行目标 org.codehaus.mojo:sql-maven-plugin:1.5:execute (default-cli) on project rms: Unexpected token: FUNCTION in statement [[ERROR] CREATE FUNCTION]

如何创建包装函数?

0 投票
0 回答
2496 浏览

java - sql-maven-plugin 没有在正确的 mysql 数据库中创建表

我尝试了以下代码的许多不同变体(包括将数据库连接详细信息提取到标记中),但无论我做什么,表仍然是在错误的数据库中创建的。

我也尝试执行“使用 autofi”数据库,但这也不起作用,并且表仍然在不同的数据库中创建。

我使用了 maven-sql-plugin 示例作为模板,但这也不起作用。

我究竟做错了什么?

谢谢,肖恩

0 投票
1 回答
5045 浏览

mysql - 带有多个分隔符的 sql-maven-plugin

我正在使用 sql-maven-plugin 在多个数据库上执行一些 MySQL 脚本。我想在同一个 SQL 脚本中部署表、数据、触发器、事件和存储过程。

我对行分隔符有疑问,因为对于 INSERT 或 CREATE 我使用;,但对于我的触发器,我必须使用 更改分隔符DELIMITER //,例如。

我知道该插件允许更改分隔符,但它适用于所有脚本,我只想为唯一脚本的一部分更改分隔符。

这是我的 Maven 配置:

0 投票
1 回答
6172 浏览

maven - Maven 插件 java.library.path

maven-surefire-plugin 支持通过配置选项使用该java.library.path属性。<argLine>

我需要将该java.library.path属性传递给 sql-maven-plugin(它没有<argLine>配置选项),以便将 jTDS 驱动程序与 Windows 身份验证一起使用(需要 ntlmauth.dll)。

在此先感谢您的帮助。

0 投票
1 回答
1853 浏览

java - sql-maven-plugin:清理多个数据库?

我想清理和填充两个不同的数据库,以便与 Maven 项目进行集成测试。我使用sql-maven-plugin,但我无法让它处理不同的数据库(我只能有一个插件声明sql-maven-plugin,并且在configuration它之间共享executions)。

你们是怎么解决的?有什么办法可以解决这个问题吗?

提前致谢!