我们每天午夜从 CI 运行 Junit 和 Selenium 测试用例。我们使用 Maven-SQL 插件预填充数据,如下所示。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>create-database-tables</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>false</autocommit>
<onError>continue</onError>
<srcFiles>
<srcFile>../sql/delete_data.sql</srcFile>
<srcFile>../sql/load_data.sql</srcFile>
</srcFiles>
</configuration>
</execution>
</executions>
</plugin>
由于不同用户同时构建,我们经常面临数据库死锁。我们认为的解决方案是在运行数据库脚本之前锁定数据库。
我们可以在运行脚本之前锁定数据库访问权限并在运行脚本后解锁它吗?