Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Sperren Sie die Oracle-Datenbank, bevor Sie die Skripts zum Löschen/Laden von Daten ausführen

Eine gemeinsam genutzte Datenbank zum Testen ist nie eine gute Idee, vermutlich wissen Sie das, weshalb Sie fragen, wie Sie den Zugriff auf jeweils einen Benutzer beschränken können.

Predigt beiseite ... Ich möchte eine Left-Field-Lösung von liquibase anbieten, um sowohl das Datenbankschema als auch die Datenpopulation zu verwalten. Hat viele nützliche Funktionen, eine davon ist, dass es die Datenbank automatisch sperrt und verhindert, dass sich zwei Instanzen von liquibase gegenseitig stören.

Beispiel

<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>