Cancellare il dbms quando si avvia un'applicazione in fase di sviluppo

di il
2 risposte

Cancellare il dbms quando si avvia un'applicazione in fase di sviluppo

C'è un modo con Spring Boot o con Java per lanciare queste query solo quando sono in fase di sviluppo?
DROP TABLE IF EXISTS utenti CASCADE;
DROP TABLE IF EXISTS ruoli CASCADE;
DROP TABLE IF EXISTS utenti_ruoli CASCADE;
DROP TABLE IF EXISTS persistent_logins CASCADE;
Non sarebbe male se fosse possibile lanciare queste query quando ho attivo il profilo seguente:
@Profile("sviluppo")
Preferirei non dover lavorare su più file .sql distinti.
Stavo pensando di lanciare queste query con JdbcTemplate all'avvio dell'applicazione con il profilo 'sviluppo' è attivo ma non credo si possa fare.

2 Risposte

  • Re: Cancellare il dbms quando si avvia un'applicazione in fase di sviluppo

    iBaffiPro ha scritto:


    C'è un modo con Spring Boot o con Java per lanciare queste query solo quando sono in fase di sviluppo?
    DROP TABLE IF EXISTS utenti CASCADE;
    DROP TABLE IF EXISTS ruoli CASCADE;
    DROP TABLE IF EXISTS utenti_ruoli CASCADE;
    DROP TABLE IF EXISTS persistent_logins CASCADE;
    Preferirei non dover lavorare su più file .sql distinti.
    Perché non vuoi file sql distinti? Una idea sarebbe questa: hai il tuo file di schema.sql (che è quello standard) che contiene le varie create in:
    src/main/resources/schema.sql

    Poi fai un altro file più semplice dove ci sono SOLO le varie drop e lo chiami es.:
    src/main/resources/drop.sql

    Poi siccome hai un profilo chiamato "sviluppo" fai una configurazione più specifica nel file:
    src/main/resources/application-sviluppo.properties

    che contiene la property:
    spring.datasource.schema = classpath:drop.sql, classpath:schema.sql

    Così solo per sviluppo esegue drop.sql e schema.sql

    Non ho modo/tempo di provare ora ma i concetti sono quelli espressi dalla reference ufficiale di Spring Boot.
  • Re: Cancellare il dbms quando si avvia un'applicazione in fase di sviluppo

    F A N T A S T I C O !

    Il mio obiettivo era non avere due file schema.sql con codice PostgreSQL ripetuto ma avere "un file schema.sql spezzettato" e poter decidere cosa lanciare e cosa no usando il file .properties è fantastico!

    Grazie infinite!
Devi accedere o registrarti per scrivere nel forum
2 risposte