Skip to content
Snippets Groups Projects
Commit 514f548b authored by Matyáš Latner's avatar Matyáš Latner
Browse files

Merge branch 'feature-createuser' into 'devel'

Feature createuser



See merge request !210
parents 4e4a2c9a 24045df5
No related branches found
No related tags found
No related merge requests found
......@@ -139,6 +139,7 @@ public class TablexiaStorage {
private void MigrateData() {
UserDAO.migrateUserSignaturesData();
UserDAO.migrateUserTableStructure();
UserDAO.fixUserNames();
}
private void reset(boolean reset) {
......
......@@ -290,12 +290,11 @@ public class UserDAO {
PreparedStatement statement = TablexiaStorage.getInstance().prepareStatement(conditionSql);
PreparedStatement replaceStatement = TablexiaStorage.getInstance().prepareStatement(replaceSql);
HashMap<Integer, String> changes = new HashMap<Integer, String>();
try {
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int id = resultSet.getInt(1);
String signature = resultSet.getString(2);
long id = resultSet.getLong("id");
String signature = resultSet.getString("signature");
// replace old JSON structure with new one
signature = signature.replaceAll("\\{\"items\":", "");
......@@ -303,15 +302,13 @@ public class UserDAO {
signature = signature.replaceAll("\"y\"", "y");
signature = signature.replaceAll(",\"ordered\":true,\"size\":[0-9]+\\}|,\"size\":[0-9]+,\"ordered\":true\\}", "");
changes.put(id, signature);
replaceStatement.setString(1, signature);
replaceStatement.setLong(2, id);
replaceStatement.addBatch();
}
statement.close();
for (Map.Entry<Integer, String> entry : changes.entrySet()) {
replaceStatement.setString(1, entry.getValue());
replaceStatement.setInt(2, entry.getKey());
replaceStatement.executeUpdate();
}
replaceStatement.executeBatch();
replaceStatement.close();
} catch (SQLException e) {
......@@ -319,6 +316,32 @@ public class UserDAO {
}
}
public static void fixUserNames() {
String replaceSql = "update user set name = ? where id = ?";
String selectSql = "select id, name from user";
PreparedStatement statement = TablexiaStorage.getInstance().prepareStatement(selectSql);
PreparedStatement replaceStatement = TablexiaStorage.getInstance().prepareStatement(replaceSql);
try {
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
long id = resultSet.getLong("id");
String name = resultSet.getString("name").replaceAll("\\u0000", "");
replaceStatement.setString(1, name);
replaceStatement.setLong(2, id);
replaceStatement.addBatch();
}
statement.close();
replaceStatement.executeBatch();
replaceStatement.close();
} catch (SQLException e) {
Log.err(User.class, "Cannot fix user name", e);
}
}
public static void migrateUserTableStructure() {
String addUuidColumn = "ALTER TABLE user ADD COLUMN uuid TEXT";
String addSyncAtColumn = "ALTER TABLE game ADD COLUMN sync_at INTEGER";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment