backing up mysql 
This will be a short one, but last night I realized that it was VVV not Vagrant that was making wonderful backups of mysql databases each time I did a `vagrant halt` Of course, I realized this after I did a `vagrant provision` on a local development site that wasn't set up with (link: https://github.com/Varying-Vagrant-Vagrants/VVV/ text: VVV) and realized the whole Craft CMS project database was gone. A few hours (yeesh) later, I have a better sense of how VVV uses (link: https://github.com/emyl/vagrant-triggers text: vagrant-triggers) to do a mysqldump of all the databases and tables and I'm halfway towards having that working with the (link: http://puphpet.com text: puphpet) `config.yaml` Particularly helpful references: - the VVV (link: https://github.com/Varying-Vagrant-Vagrants/VVV/tree/master/config/homebin text: homebin directory) which is pretty much what _should_ be happening: vagrant-triggers on up, halt, and destroy that call a bash script that loops through mysql databases and dumps them out. In this case, to work with Craft a little more cleanly, I made a `bin` directory in my webroot and mapped it to /var/vagrant/bin with `config.yaml`: ``` vagrantfile: vm: synced_folder: vflwf_iq3ozcalwiv4: source: ./bin target: /var/vagrant/bin sync_type: default smb: smb_host: '' smb_username: '' smb_password: '' rsync: args: - '--verbose' - '--archive' - '-z' exclude: - .vagrant/ - .git/ auto: 'true' owner: vagrant group: vagrant ``` and a mysql user `mysqldumpuser` with `SELECT` privileges on all tables. ``` user: mysqldumpuser table: '*.*' privileges: - SELECT, LOCK TABLES ``` The biggest hurdle was misunderstanding a permissions error. Even though I'd added `mysqldumpuser` to the `config.yaml`, it wasn't actually added to the database. Once I checked in Sequel Pro and saw that (and added it) this worked much better. This is my `db_backup` script: ``` #!/bin/bash # # Create individual SQL files for each database. These files # are imported automatically during an initial provision if # the databases exist per the import-sql.sh process. mysql -e 'show databases' | \ grep -v -F "information_schema" | \ grep -v -F "performance_schema" | \ grep -v -F "mysql" | \ grep -v -F "test" | \ grep -v -F "Database" | \ while read dbname; do mysqldump -u mysqldumpuser -p "$dbname" > /var/www/db_backups/local/"$dbname".sql && echo "Database $dbname backed up..."; done ``` …which is still asking for a password at the prompt, so I have to figure out how to store that as a Vagrant ENV variable or something. Ok. *Edit*: (link: http://stackoverflow.com/questions/9293042/mysqldump-without-the-password-prompt text: This seems to work.) `.my.cnf` file on the Vagrant side with the `mysqldumpuser` info and then remove the `-p` part of `db_backup`
no weeknotes last week 

No project weeknotes last week. Whoops. What happened last week?

Made a lot of progress with CraftCMS templates and data structures. Figured out some more concepts with that CMS. Goal is still to have all of this site mapped out and working by tomorrow. Other than accidentally wiping the database last night (though fortunately with a backup on a remote staging server from a few days ago) I feel good.