2 Database
Olli edited this page 2019-04-13 19:34:33 +02:00

Database

Routines

Create

CREATE DATABASE `questlab` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;
CREATE USER 'questlab'@'localhost' IDENTIFIED BY 'questlab';
GRANT ALL PRIVILEGES ON questlab.* TO 'questlab'@'localhost'

Export

Export database structure only:

$ mysqldump --routines --triggers --no-data -u questlab -p questlab | sed 's/ AUTO_INCREMENT=[0-9]*\b//' > create.sql

Export data only:

$ mysqldump --no-create-info --skip-triggers --complete-insert -u questlab -p questlab > import.sql

Import

Import database structure:

$ mysql -u questlab -p questlab < create.sql

Import data:

$ mysql -u questlab -p questlab < import.sql

Note: You may need to delete all triggers before importing data and recreate them after the import (using triggers.sql)!

Update

There is currently no official database update procedure. As soon as we hit version 1.0 we will provide update scripts.

However the following routine—which is a combination of the commands above—appears to be sufficient:

$ mysqldump --no-create-info --skip-triggers --complete-insert -u questlab -p questlab > ~/data.sql
$ mysql -u questlab -p questlab < db/create.sql
$ mysql -u questlab -p questlab < db/drop.sql
$ mysql -u questlab -p questlab < ~/data.sql
$ mysql -u questlab -p questlab < db/procedures.sql
$ mysql -u questlab -p questlab < db/triggers.sql