X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_bd_admin.erl;h=037de968c2c63c0f427ef3bf7adbddff1fc400f6;hp=66427d365747aea6147dc19d3642a8875edd68a1;hb=861bc33f2a9d811fd6a60b11929ef74e2404848d;hpb=75cd78e0253509fad9c3cbfadda4a1c193c2b6e0 diff --git a/modules/erl/euphorik_bd_admin.erl b/modules/erl/euphorik_bd_admin.erl index 66427d3..037de96 100644 --- a/modules/erl/euphorik_bd_admin.erl +++ b/modules/erl/euphorik_bd_admin.erl @@ -85,7 +85,6 @@ create_tables() -> {disc_copies, [node()]} ]), mnesia:create_table(minichat, [ - {type, ordered_set}, {attributes, record_info(fields, minichat)}, {disc_copies, [node()]} ]), @@ -269,13 +268,7 @@ patch(1) -> {atomic, _} -> ok end; % 2 -> 3 -patch(2) -> - % première étape : changer le type de la table minichat de set à ordered_set - % TODO : trouver un meilleur moyen que de passer par un backup - backup("tmp"), - create(), - restore("tmp"), - file:delete(dossier_backups() ++ "tmp"), +patch(2) -> mnesia:transform_table( troll, fun({troll, Id_troll, Id_user, Date_create, Date_post, Content}) -> @@ -292,10 +285,23 @@ patch(2) -> mnesia:transform_table( minichat, fun({minichat, Id, Auteur_id, Date, Pseudo, Contenu, _Troll_id, Racine_id}) -> - {minichat, Id, Auteur_id, Date, Pseudo, Contenu, Racine_id} + {minichat, Id, Auteur_id, Date, Pseudo, Contenu, Racine_id, normal} end, record_info(fields, minichat) - ), + ), + % comble les trous entre les id non-contigues + mnesia:transaction(fun() -> + lists:foreach(fun(Id) -> + case mnesia:read({minichat, Id}) of + [] -> + {ok, #user{profile = Profile}} = euphorik_bd:user_by_id(0), + mnesia:write(#minichat{id = Id, auteur_id = 0, date = undefined, pseudo = Profile#profile.pseudo, contenu = "Comblement...", racine_id = Id, status = deleted}); + _ -> rien + end + end, + lists:seq(1, mnesia:table_info(minichat, size)) + ) + end), creer_indexes(). % uniquement pour l'indice sur id_minichat de la table troll