Ich habe ein MySQL-Skript, das ich in einem Controller ausführen möchte, wenn meine Grails 3.0.9
Anwendung ausgeführt wird. Ich habe es auf diese Weise versucht:Führen Sie MySQL-Skript in Grails App
import groovy.sql.Sql
import grails.util.Holders
def void clearDatabase() {
String sqlFilePath = 'path/to/file/clear_database.sql'
String sqlString = new File(sqlFilePath).text
def sql = Sql.newInstance(Holders.config.dataSource.url, Holders.config.dataSource.username, Holders.config.dataSource.password, Holders.config.dataSource.driverClassName)
sql.execute(sqlString)
}
Das ist, wie meine clear_database.sql
Datei wie folgt aussieht:
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE table_a;
TRUNCATE table_b;
TRUNCATE table_c;
SET FOREIGN_KEY_CHECKS = 1;
Das ist die Fehlermeldung erhalte ich:
WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Warning Code: 1064, SQLState: 42000
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRUNCATE table_a;
Ist meine MySQL-Syntax falsch oder Vermisse ich etwas anderes?
edit:
Als ich das Skript ausführen manuell funktioniert es. Also ich denke das Skript ist korrekt aber so wie ich es nicht ausführe.
Dies funktioniert auch nicht, bekomme den gleichen Fehler. : / – Peter