Oracle
 sql >> Base de données >  >> RDS >> Oracle

Verrouiller la base de données oracle avant d'exécuter les scripts de données de suppression/chargement

Une base de données partagée pour les tests n'est jamais une bonne idée, vous le savez probablement, c'est pourquoi vous demandez comment restreindre l'accès à un utilisateur à la fois.

Prêcher de côté ..... Je voudrais offrir une solution de champ gauche de liquibase pour gérer à la fois le schéma de la base de données et la population de données. Possède de nombreuses fonctionnalités utiles, dont l'une est qu'il verrouille automatiquement la base de données et empêche deux instances de liquibase d'interférer l'une avec l'autre.

Exemple

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