Maven: maven-sql-plugin mit MSSQL-Server

Bei einem Java-Projekt, wo wir auch Maven einsetzen, müssen wir auf eine MSSQL-Datenbank zugreifen. Da unsere Datenbankscripte momentan im Fluss sind, d.h. sich häufig ändern, wollten wir diese mit einem maven-goal über das Plugin maven-sql-plugin neu in die Datenbank laden lassen. Leider lief das gar nicht, da die Datenbank sich weigerte dem SQL-Plugin die Befehle abzunehmen. Heute kam ich drauf, dass der Delimiter falsch gesetzt war. Dieser lautet bei MSSQL einfach „GO“ und nicht „;“ wie bei beispielsweise MySQL.

Werbung


Leider ist dies nicht dokumentiert und so musste ich bis an die API-Docs crawlen, bis ich die endgültige Lösung für das Laden des Scripts src/main/resources/database/database.sql fand:

<plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifactId>sql-maven-plugin</artifactId>
	<version>1.3</version>
	<dependencies>
		<dependency>
			<groupId>net.sourceforge.jtds</groupId>
			<artifactId>jtds</artifactId>
			<version>1.2.2</version>
		</dependency>
	</dependencies>
	<configuration>
		<driver>net.sourceforge.jtds.jdbc.Driver</driver>
		<url>jdbc:jtds:sqlserver://localhost:1433;selectMethod=cursor;sendStringParametersAsUnicode=false</url>
		<username>YOURSECRETUSER</username>
		<password>YOURSECRETUSER</password>
	</configuration>
	<executions>
		<execution>
			<id>create-data</id>
			<phase>process-test-resources</phase>
			<goals>
				<goal>execute</goal>
			</goals>
			<configuration>
				<autocommit>true</autocommit>
				<delimiter>GO</delimiter>
				<srcFiles>
					<srcFile>src/main/resources/database/database.sql</srcFile>
				</srcFiles>
			</configuration>
		</execution>
	</executions>
</plugin>

Veröffentlicht von

Uli

IT-Nerd und Admin

Ein Gedanke zu „Maven: maven-sql-plugin mit MSSQL-Server“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.