Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [ANT]file build per db Server

    Ciao a tutti ragazzi, sto facendo un progetto per l'universitò dove mi chiede di creare attraverso un file di build il client, il server e il database. L'unica cosa che non riesco ad affontare è la creazione del database. Ho messo:
    codice:
    <target name= "makedb" description= "create database" depends="compile">         
                <echo message= "Creating the database..."/>
                <sql driver= "org.postgresql.Driver"
                url= "jdbc:postgresql://127.0.0.1:5432/WatchNeighbors_DB"
                userid = "postgres"
                password= '1'>
                    <classpath refid="WatchNeighbors.classpath"/>            
                    <transaction src="${db}"/>
                </sql>
            </target>
    ma mi da un errore nella lettura del COPY del file txt di SQL. Quindi ho fatto via pslq,
    codice:
    <target name="prova" depends="compile">
            <exec executable="psql">
                <arg value="-p"/>
                <arg value="5432"/>
                <arg value="-U"/>
                <arg value="postgres"/>
                <arg value="-d"/>
                <arg value="jdbc:postgresql://127.0.0.1:5432/WatchNeighbors_DB"/>
                <arg value="-f"/>
                <arg value="${db}"/>
            </exec>
        </target>
    Ma continua ad aprirmi il database template1. Inoltre i comandi dalla shell di pgadmin non vanno, continua a dirmi '"more" non è riconosciuto'(dopo un semplice \l dal database scelto). Sapreste aiutarmi ?
    p.s. il file sql dove è salvata la struttura del database è stata creata utilizzando il pg_dump di pgadmin.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da DvdDelphi Visualizza il messaggio
    L'unica cosa che non riesco ad affontare è la creazione del database. Ho messo:
    codice:
    <target name= "makedb" description= "create database" depends="compile">         
                <echo message= "Creating the database..."/>
                <sql driver= "org.postgresql.Driver"
                url= "jdbc:postgresql://127.0.0.1:5432/WatchNeighbors_DB"
                userid = "postgres"
                password= '1'>
                    <classpath refid="WatchNeighbors.classpath"/>            
                    <transaction src="${db}"/>
                </sql>
            </target>
    Premetto che conosco e uso Apache Ant ma non ho mai usato il task <sql>. Domanda: cosa vale ${db} ?
    Secondo la documentazione, il src deve essere il nome del file .sql da eseguire.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Ciao, {$db} è il file txt in formato .sql dove ho fatto il dump del database. Il punto è che il comando sql non dovrei utilizzarlo per problemi con il JDBC, quindi uso executive con pslq, ma il db non me lo trova, mi da errore in template1, cosa non possibile perché ho il mio database Watchneighbors_DB creato da me

  4. #4
    Parlando tra colleghi dell'università, loro mi hanno detto che hanno fatto semplicemente la creazione del database e poi quello delle tabelle, solo che a me da un errore " ERRORE: COPY da stdin fallita: The JDBC driver currently does not support COPY operations." Utilizzo come driver, l'ultimo rilasciato, il "postgresql-9.4.1212.jre7.jar"
    <target name= "createtables" description= "create tables" >
    <echo message= "Creating tables..."/>
    <sql driver= "org.postgresql.Driver"
    url= "jdbcostgresql://127.0.0.1:5432/WatchNeighbors_DB"
    userid = "postgres"
    password= '1'
    autocommit="true">
    <classpath refid="WatchNeighbors.classpath"/>
    <transaction src="db.sql"/>
    </sql>
    </target>

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da DvdDelphi Visualizza il messaggio
    Parlando tra colleghi dell'università, loro mi hanno detto che hanno fatto semplicemente la creazione del database e poi quello delle tabelle, solo che a me da un errore " ERRORE: COPY da stdin fallita: The JDBC driver currently does not support COPY operations." Utilizzo come driver, l'ultimo rilasciato, il "postgresql-9.4.1212.jre7.jar"
    PostgreSQL ha infatti il COPY e presumo che il db.sql faccia quindi uso del COPY. Il punto è questo, cioè come hai generato quel db.sql.

    Non sarebbe meglio se il db.sql usasse solo i CREATE TABLE, CREATE SEQUENCE ecc... e INSERT "puliti" di record? Questa è soluzione migliore poiché non ti vai ad incasinare con comandi strani.
    Tra l'altro se tutto il db è "farina del tuo sacco", allora fin dall'inizio avresti dovuto scrivere tu il SQL a mano per la creazione di tabelle, sequence e altro.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  6. #6
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Il punto è questo, cioè come hai generato quel db.sql.
    Ho fatto un dump da pgadmin e mi ha generato lui automaticamente tutte le query per le tabelle e le varie chiavi, comprese le COPY dei valori già inseriti

    Quote Originariamente inviata da andbin Visualizza il messaggio
    Non sarebbe meglio se il db.sql usasse solo i CREATE TABLE, CREATE SEQUENCE ecc... e INSERT "puliti" di record? Questa è soluzione migliore poiché non ti vai ad incasinare con comandi strani.
    Tra l'altro se tutto il db è "farina del tuo sacco", allora fin dall'inizio avresti dovuto scrivere tu il SQL a mano per la creazione di tabelle, sequence e altro.
    ok allora provo a fare così, cancello le parti dove ci sono i COPY e li sostituisco con una insert

  7. #7
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Non sarebbe meglio se il db.sql usasse solo i CREATE TABLE, CREATE SEQUENCE ecc... e INSERT "puliti" di record? Questa è soluzione migliore poiché non ti vai ad incasinare con comandi strani.
    Tra l'altro se tutto il db è "farina del tuo sacco", allora fin dall'inizio avresti dovuto scrivere tu il SQL a mano per la creazione di tabelle, sequence e altro.
    Ciao, ho fatto come mi hai detto, ho sostituito tutte le copy mettendo delle insert, solo che mi va in "java.lang.ArrayIndexOutOfBoundsException" e sinceramente non mi aspettavo un errore del genere...

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da DvdDelphi Visualizza il messaggio
    solo che mi va in "java.lang.ArrayIndexOutOfBoundsException" e sinceramente non mi aspettavo un errore del genere...
    Hai uno stack-trace? Sarebbe interessante capirne l'origine, se è causato dal driver, da Ant o che altro.


    P.S. lo script SQL è corretto? Generalmente prima di eseguirlo in automatico con script o altro è bene provarlo "a mano" con un qualche strumento (visuale o no che sia) dedicato per il tuo DB (tipo appunto il pgAdmin per PostgreSQL).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Hai uno stack-trace? Sarebbe interessante capirne l'origine, se � causato dal driver, da Ant o che altro.
    lo stack trace su ant non so come si faccia, ho solo la console di eclipse. Comunque ho provato a togliere anche le insert e mi da lo stesso questo errore


    Quote Originariamente inviata da andbin Visualizza il messaggio
    P.S. lo script SQL � corretto? Generalmente prima di eseguirlo in automatico con script o altro � bene provarlo "a mano" con un qualche strumento (visuale o no che sia) dedicato per il tuo DB (tipo appunto il pgAdmin per PostgreSQL).
    il comando sql e' corretto, lo avevo gia' provato durante i test in locale e andava.
    Ultima modifica di DvdDelphi; 12-06-2017 a 21:57

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da DvdDelphi Visualizza il messaggio
    lo stack trace su ant non so come si faccia, ho solo la console di eclipse.
    Lancia ant in modalità "verbose" ( ant -v oppure ant -verbose ). Non sono sicuro che possa aiutare in questo caso ma perlomeno mostra molto di più. Eventualmente puoi anche aggiungere -d o -debug .
    Chiaramente specificando anche il target da eseguire.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.