Add mysql module
skx opened this issue · comments
This might be a bigger job:
mysql {
username => "root",
password => "secret",
database => "users",
sql => "SELECT COUNT(id) FROM wp_users WHERE login LIKE \"steve%\"",
}
Might be a good example of how it could work..
A mysql
module feels a bit specific. It might be better to have a sql
module which has an engine
attribute to define the database type
sql {
engine => "mysql",
username => "root",
password => "secret",
database => "users",
sql => "SELECT COUNT(id) FROM wp_users WHERE login LIKE \"steve%\"",
}
This way it allows for adding PostgreSQL, SQLite, Oracle, MSSQL etc without having modules for each.
Another thought would be to allow the SQL to be defined in a file sql_file => "/path/to/file.sql"
which could contain multiple statements to run.
Something else to think about may be how to deal with SELECT
statements vs INSERT
/UPDATE
/DELETE
and if results could/should be useable. There may be cases where some SQL should be run if
/unless
another SQL query returns a result/value.
Good comment, and definitely agreed that engine-agnostic would be better.
For any initial attempt I think it would be sufficient to run some SQL. I'd assume that such an action would need to be triggered
if it wasn't safe to run multiple times.
Updated to force the user to specify the DB-type and DSN-string.
Confirmed it works on MySQL & SQLite (memory and on-disk).