Software /
code /
prosody
Comparison
plugins/mod_storage_sql2.lua @ 5881:12d12bda4b8c
mod_storage_sql2: Split up setting of encoding and table upgrade code
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 28 Oct 2013 21:34:55 +0100 |
parent | 5848:06156bfd4eaf |
child | 5882:fbba2997aabb |
comparison
equal
deleted
inserted
replaced
5874:3321a4b3e6c4 | 5881:12d12bda4b8c |
---|---|
106 set_names_query = set_names_query:gsub(";$", " COLLATE 'utf8_bin';"); | 106 set_names_query = set_names_query:gsub(";$", " COLLATE 'utf8_bin';"); |
107 end | 107 end |
108 local success,err = engine:transaction(function() return engine:execute(set_names_query); end); | 108 local success,err = engine:transaction(function() return engine:execute(set_names_query); end); |
109 if not success then | 109 if not success then |
110 module:log("error", "Failed to set database connection encoding to UTF8: %s", err); | 110 module:log("error", "Failed to set database connection encoding to UTF8: %s", err); |
111 return; | 111 end |
112 end | 112 end |
113 local function upgrade_table() | |
113 if params.driver == "MySQL" then | 114 if params.driver == "MySQL" then |
114 -- COMPAT w/pre-0.9: Upgrade tables to UTF-8 if not already | 115 -- COMPAT w/pre-0.9: Upgrade tables to UTF-8 if not already |
115 local check_encoding_query = "SELECT `COLUMN_NAME`,`COLUMN_TYPE` FROM `information_schema`.`columns` WHERE `TABLE_NAME`='prosody' AND ( `CHARACTER_SET_NAME`!='utf8' OR `COLLATION_NAME`!='utf8_bin' );"; | 116 local check_encoding_query = "SELECT `COLUMN_NAME`,`COLUMN_TYPE` FROM `information_schema`.`columns` WHERE `TABLE_NAME`='prosody' AND ( `CHARACTER_SET_NAME`!='utf8' OR `COLLATION_NAME`!='utf8_bin' );"; |
116 local success,err = engine:transaction(function() | 117 local success,err = engine:transaction(function() |
117 local result = engine:execute(check_encoding_query); | 118 local result = engine:execute(check_encoding_query); |
147 --local dburi = db2uri(params); | 148 --local dburi = db2uri(params); |
148 engine = mod_sql:create_engine(params); | 149 engine = mod_sql:create_engine(params); |
149 | 150 |
150 -- Encoding mess | 151 -- Encoding mess |
151 set_encoding(); | 152 set_encoding(); |
153 upgrade_table(); | |
152 | 154 |
153 -- Automatically create table, ignore failure (table probably already exists) | 155 -- Automatically create table, ignore failure (table probably already exists) |
154 create_table(); | 156 create_table(); |
155 end | 157 end |
156 | 158 |