Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /www/htdocs/v167612/wplog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /www/htdocs/v167612/wplog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el(&$output) in /www/htdocs/v167612/wplog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el(&$output) in /www/htdocs/v167612/wplog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el(&$output) in /www/htdocs/v167612/wplog/wp-includes/classes.php on line 1244

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl(&$output) in /www/htdocs/v167612/wplog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl(&$output) in /www/htdocs/v167612/wplog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el(&$output) in /www/htdocs/v167612/wplog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el(&$output) in /www/htdocs/v167612/wplog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el(&$output) in /www/htdocs/v167612/wplog/wp-includes/classes.php on line 1442

Strict Standards: Redefining already defined constructor for class wpdb in /www/htdocs/v167612/wplog/wp-includes/wp-db.php on line 306

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /www/htdocs/v167612/wplog/wp-includes/cache.php on line 433
iFool » GRAILS quickstart mit MySQL
Home > Groovy & Grails > GRAILS quickstart mit MySQL

GRAILS quickstart mit MySQL

mysql_logoIch dachte mir, es sei ganz nützlich immer ein Datenbanksystem auf dem Notebook zu haben und installierte mir deshalb schnell mal MySQL. Das war mit dem MSI-Installer für Windows auch garkein Problem: Einfach die Standardversion (derzeit MySQL Server 5.1) ausgewählt und schon war die Basis fix und fertig eingerichtet.

Jetzt galt es nurnoch, eine Datenbank mit gültigem User einzurichten und ein paar Handgriffe im Setup der GRAILS-Anwendung zu unternehmen, die mit MySQL zusammenarbeiten sollte.

Den Job mit der Datenbankeinrichtung hat mir ein kleines Script abgenommen (Dateiname C:\temp\create_rc.sql):


DROP DATABASE RC;
CREATE DATABASE RC;
USE RC;
DROP USER 'rcuser'@'localhost';
CREATE USER 'rcuser'@'localhost';
GRANT ALL PRIVILEGES ON RC.* TO 'rcuser'@'localhost';

Das Script habe ich anschließend im “MySQL Command Line Client” mit der source-Anweisung aufgerufen (Zeile 7):


Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.1.31-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> source c:\temp\create_rc.sql
Query OK, 0 rows affected (0.01 sec)
Query OK, 1 row affected (0.00 sec)
Database changed
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql>

Damit war die Datenbank okay und jetzt mussten noch die 2 Handgriffe in der GRAILS-Anwendung unternommen werden:

(1) Installation des MySQL Datenbanktreibers. Treiber (Connector/J) bei MySQL heruntergeladen und in das Verzeichnis {basis-diretory}/lib gelegt.

(2) Datasource {basis-diretory}/grails-app/conf/Datasource.groovy entsprechend der oben beschriebenen Benutzer- und Datenbankeinrichtung angepasst:


	development {
		dataSource {
			dbCreate = "update"
			url = "jdbc:mysql://localhost/rc"
            driverClassName = "com.mysql.jdbc.Driver"
            username = "rcuser"
		}
	}

Das Hibernate-Wunder

Das ging wirklich sehr schnell und komfortabel. Absolut bemerkenswert ist dann noch, dass alle Tabellen der Anwendung dank Hibernate beim ersten Start der Anwendung automatisch angelegt wurden. Das geschieht, weil dbCreate in der Datasource mit update angegeben ist. Die Tabellen werden damit bei Bedarf erstellt oder ggf. auch nur angepasst. Im Gegensatz dazu erstellt create die Tabellen nur ohne sie bei Änderungen im Datenmodell (sprich: Domänenklassen) auch anzupassen. create-drop ist schließlich die Defaulteinstellung der generierten hsqldb-Datasource: Tabellen bei jedem Anwendungsstart neu (=leer) aufbauen.

Groovy & Grails ,

  1. Bisher keine Kommentare
  1. Bisher keine Trackbacks