neděle 22. dubna 2012

mysqldump v Grails

Dnes jsem poprvé vyzkoušel příkaz "mysqldump". Tento příkaz provede dump databáze v MySQL, což znamená, že se vytvoří skript pro kompletní (nebo i jiný) backup. Příkaz chci vyvolat v service třídě. Zatím jsem vykoumal toto:

public void createMySQLDump() {
        String username = grailsApplication.config.dataSource.username
        String password =  grailsApplication.config.dataSource.password
        "mysqldump --user=${username} --password=${password} --all-databases --result-file=mysql-dump-${new Date().format("ddMMyyyy")}.sql".execute()
    }
Tento dump vytvoří backup pro všechny dostupné databáze daného uživatele. Co jsem nepochopil, tak nefunguje mysqldump tímto způsobem:
"mysqldump --user= ${username} --password= ${password} --all-databases > C:\\mysql-dump-${new Date().time}.sql"
Jsem pak četl na jednom blogu, že znak ">" nelze použít, ale Grails to nijak neoznámí. Takže bacha.

Edit: Zjistil jsem, že dataSource objekt nefunguje spolehlivě pro zjištění uživ. jména a hesla do databáze, a je lepší použít grailsApplication objekt. Oba jsou pomocí DI automaticky vkládány do service tříd.

Žádné komentáře:

Okomentovat