Cơ sở dữ liệu dùng chung để thử nghiệm không bao giờ là một ý tưởng tuyệt vời, có lẽ bạn biết điều này, đó là lý do tại sao bạn đang hỏi cách hạn chế quyền truy cập cho một người dùng tại một thời điểm.
Giảng sang một bên ..... Tôi muốn cung cấp một giải pháp trường bên trái của liquibase để quản lý cả lược đồ cơ sở dữ liệu và tập hợp dữ liệu. Có rất nhiều tính năng hữu ích, một trong số đó là nó sẽ tự động khóa cơ sở dữ liệu và ngăn hai trường hợp liquibase can thiệp vào nhau.
Ví dụ
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.myspotontheweb.db</groupId>
<artifactId>liquibase-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<!-- Liquibase settings -->
<liquibase.url>jdbc:h2:target/db1/liquibaseTest;AUTO_SERVER=TRUE</liquibase.url>
<liquibase.driver>org.h2.Driver</liquibase.driver>
<liquibase.username>user</liquibase.username>
<liquibase.password>pass</liquibase.password>
<liquibase.changeLogFile>com/myspotontheweb/db/changelog/db-changelog-master.xml</liquibase.changeLogFile>
<liquibase.promptOnNonLocalDatabase>false</liquibase.promptOnNonLocalDatabase>
</properties>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.162</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>2.0.2</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>update</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>