The mysql-command CREATE DATABASE fails when databasename includes a '-'.
Solution: Use quotes around the db_name on both CREATE DATABASE statments in mysql.rb line 15 & 57:
"CREATE DATABASE IF NOT EXISTS `#{db_name}`;"
The patch:
Index: lib/deprec/third_party/railsmachine/recipes/mysql.rb
===================================================================
--- lib/deprec/third_party/railsmachine/recipes/mysql.rb (revision 126)
+++ lib/deprec/third_party/railsmachine/recipes/mysql.rb (working copy)
@@ -12,7 +12,7 @@
end
def create_database(db_name, user = nil, pass = nil)
- sql = ["CREATE DATABASE IF NOT EXISTS #{db_name};"]
+ sql = ["CREATE DATABASE IF NOT EXISTS `#{db_name}`;"]
sql << "GRANT ALL PRIVILEGES ON #{user}.* TO #{user}@localhost" if user
sql << " IDENTIFIED BY '#{pass}'" if pass
sql << ';'
@@ -54,7 +54,7 @@
set_mysql_admin
read_config
- sql = "CREATE DATABASE IF NOT EXISTS #{db_name};"
+ sql = "CREATE DATABASE IF NOT EXISTS `#{db_name}`;"
sql += "GRANT ALL PRIVILEGES ON #{db_name}.* TO #{db_user}@localhost IDENTIFIED BY '#{db_password}';"
mysql.execute sql, mysql_admin
end