diff --git a/400_xowa/src/gplx/dbs/cfgs/Db_cfg_tbl.java b/400_xowa/src/gplx/dbs/cfgs/Db_cfg_tbl.java
index c773d5502..168590182 100644
--- a/400_xowa/src/gplx/dbs/cfgs/Db_cfg_tbl.java
+++ b/400_xowa/src/gplx/dbs/cfgs/Db_cfg_tbl.java
@@ -83,6 +83,8 @@ public class Db_cfg_tbl implements Db_tbl {
if (cur_val == null) this.Insert_str(grp, key, val);
else this.Update_str(grp, key, val);
}
+
+ public void Upsert_int (String key, int val) {Upsert_str(key, Int_.To_str(val));}
public void Upsert_str (String key, String val) {
String cur_val = this.Select_str_or(key, null);
if (cur_val == null) this.Insert_str(key, val);
@@ -111,6 +113,8 @@ public class Db_cfg_tbl implements Db_tbl {
Db_rdr rdr = stmt_select.Clear().Crt_str(fld_grp, grp).Crt_str(fld_key, key).Exec_select__rls_manual();
try {return rdr.Move_next() ? rdr.Read_str(fld_val) : or;} finally {rdr.Rls();}
}
+
+ public int Select_int_or (String key, int or) {String val = Select_str_or(key, null) ; return val == null ? or : Parse_int ("", key, val);}
public String Select_str_or (String key, String or) {
if (stmt_select == null) stmt_select = conn.Stmt_select(tbl_name, String_.Ary(fld_val), fld_grp, fld_key);
Db_rdr rdr = stmt_select.Clear().Crt_str(fld_grp, "").Crt_str(fld_key, key).Exec_select__rls_manual();
diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props.java
index 5df0027b6..f01ebea22 100644
--- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props.java
+++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props.java
@@ -34,8 +34,8 @@ public class Xowdir_wiki_props {
}
public void Set(String key, String val) {
- if (String_.Eq(key, Xowd_cfg_key_.Key__wiki_core__domain)) this.domain = val;
- else if (String_.Eq(key, Xowd_cfg_key_.Key__wiki_core__name)) this.name = val;
+ if (String_.Eq(key, Xowd_cfg_key_.Key__wiki__core__domain)) this.domain = val;
+ else if (String_.Eq(key, Xowd_cfg_key_.Key__wiki__core__name)) this.name = val;
else if (String_.Eq(key, Xowd_cfg_key_.Key__init__main_page)) this.main_page = val;
else throw Err_.new_unhandled_default(key);
}
diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr.java
index 75f21bbe3..15a792992 100644
--- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr.java
+++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr.java
@@ -37,9 +37,9 @@ abstract class Xowdir_wiki_props_mgr__base implements Xowdir_wiki_props_mgr {
public Xowdir_wiki_props Verify(boolean mode_is_import, String domain, Io_url core_db_url) {
Xowdir_wiki_props rv = new Xowdir_wiki_props();
- Verify_or_fix(rv, mode_is_import, core_db_url, Xowd_cfg_key_.Key__wiki_core__domain);
+ Verify_or_fix(rv, mode_is_import, core_db_url, Xowd_cfg_key_.Key__wiki__core__domain);
Verify_or_fix(rv, mode_is_import, core_db_url, Xowd_cfg_key_.Key__init__main_page);
- Verify_or_fix(rv, mode_is_import, core_db_url, Xowd_cfg_key_.Key__wiki_core__name);
+ Verify_or_fix(rv, mode_is_import, core_db_url, Xowd_cfg_key_.Key__wiki__core__name);
return rv;
}
@@ -47,7 +47,7 @@ abstract class Xowdir_wiki_props_mgr__base implements Xowdir_wiki_props_mgr {
String val = Wiki_cfg__select_or(key, null);
if (val == null) {
props.Dirty_y_();
- usr_dlg.Warn_many("", "", "xowdir: core_db.xowa_cfg does not have val; url=~{0} key=~{1}", core_db_url, key);
+ usr_dlg.Log_many("", "", "xowdir: core_db.xowa_cfg does not have val; url=~{0} key=~{1}", core_db_url, key);
val = Fix(props, mode_is_import, core_db_url, key);
Wiki_cfg__upsert(key, val);
}
@@ -55,13 +55,13 @@ abstract class Xowdir_wiki_props_mgr__base implements Xowdir_wiki_props_mgr {
return val;
}
private String Fix(Xowdir_wiki_props props, boolean mode_is_import, Io_url core_db_url, String key) {
- if (String_.Eq(key, Xowd_cfg_key_.Key__wiki_core__domain)) {
+ if (String_.Eq(key, Xowd_cfg_key_.Key__wiki__core__domain)) {
String rv = core_db_url.NameOnly();
if (String_.Has_at_end(rv, "-core"))
rv = String_.Mid(rv, 0, String_.Len(rv) - 5);
return rv;
}
- else if (String_.Eq(key, Xowd_cfg_key_.Key__wiki_core__name)) {
+ else if (String_.Eq(key, Xowd_cfg_key_.Key__wiki__core__name)) {
if (mode_is_import)
return props.Domain(); // NOTE: must be called after domain
else {
diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr__tst.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr__tst.java
index 3a01d83f1..8bb524168 100644
--- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr__tst.java
+++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/dbs/Xowdir_wiki_props_mgr__tst.java
@@ -59,8 +59,8 @@ class Xowdir_wiki_props_mgr__fxt {
mgr.User_reg__upsert(domain, wiki_json.To_str(new Json_wtr()));
}
public void Init__wiki_props(String domain, String name, String main_page) {
- mgr.Wiki_cfg__upsert(Xowd_cfg_key_.Key__wiki_core__domain, domain);
- mgr.Wiki_cfg__upsert(Xowd_cfg_key_.Key__wiki_core__name, name);
+ mgr.Wiki_cfg__upsert(Xowd_cfg_key_.Key__wiki__core__domain, domain);
+ mgr.Wiki_cfg__upsert(Xowd_cfg_key_.Key__wiki__core__name, name);
mgr.Wiki_cfg__upsert(Xowd_cfg_key_.Key__init__main_page, main_page);
}
public void Test__verify(boolean mode_is_import, String url, boolean expd_dirty, Xowdir_wiki_props expd) {
diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xopg_db_mgr.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xopg_db_mgr.java
index ec95ea55b..0047a5b2a 100644
--- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xopg_db_mgr.java
+++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xopg_db_mgr.java
@@ -26,9 +26,9 @@ public class Xopg_db_mgr {
public static int Create
( Xowd_page_tbl page_tbl, Xowd_text_tbl text_tbl, Xowd_site_ns_tbl ns_tbl, Db_cfg_tbl cfg_tbl
, int ns_id, byte[] ttl_page_db, byte[] text_raw, int cat_db_id) {
- // get next page_id
- int page_id = cfg_tbl.Select_int_or("db", "page.id_next", 1);
- cfg_tbl.Upsert_int("db", "page.id_next", page_id + 1);
+ // get next page_id
+ int page_id = cfg_tbl.Select_int_or(Xowd_cfg_key_.Grp__db, Xowd_cfg_key_.Key__wiki__page__id_next, 1);
+ cfg_tbl.Upsert_int(Xowd_cfg_key_.Grp__db, Xowd_cfg_key_.Key__wiki__page__id_next, page_id + 1);
// zip if needed
byte[] text_zip = text_tbl.Zip(text_raw);
diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_wiki_factory.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_wiki_factory.java
index 4279a023f..8592ae26b 100644
--- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_wiki_factory.java
+++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_wiki_factory.java
@@ -16,13 +16,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.addons.wikis.directorys.specials.items.bldrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.directorys.*; import gplx.xowa.addons.wikis.directorys.specials.*; import gplx.xowa.addons.wikis.directorys.specials.items.*;
-import gplx.dbs.*; import gplx.dbs.cfgs.*;
-import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.addons.wikis.ctgs.dbs.*;
-import gplx.xowa.addons.wikis.directorys.dbs.*;
public class Xow_wiki_factory {
public static Xowe_wiki Load_personal(Xoae_app app, byte[] domain, Io_url dir_url) {
// upgrade wiki directly at db
- Upgrade_wiki(app, domain, dir_url);
+ Xow_wiki_upgrade_.Upgrade_wiki(app, domain, dir_url);
// create the wiki
Xowe_wiki rv = new Xowe_wiki
@@ -49,63 +46,4 @@ public class Xow_wiki_factory {
rv.Msg_mgr().Get_or_make(Bry_.new_a7("wikimedia-copyright")).Atrs_set(Bry_.Empty, false, false);
return rv;
}
- private static void Upgrade_wiki(Xoae_app app, byte[] domain, Io_url dir_url) {
- // get conn
- Io_url core_db_url = gplx.xowa.wikis.data.Xow_db_file__core_.Find_core_fil_or_null(dir_url, String_.new_u8(domain));
- if (core_db_url == null) {
- throw Err_.new_wo_type("failed to find core_db for wiki; wiki=~{domain} dir=~{dir_url}", domain, dir_url);
- }
- Db_conn core_db_conn = Db_conn_bldr.Instance.Get_or_fail(core_db_url);
-
- // > v4.2.0
- // cat_link: if cat_link.cl_sortkey_prefix doesn't exist, then cat_link is old format; drop it and add the new one
- try {
- if (!core_db_conn.Meta_fld_exists(Xodb_cat_link_tbl.TBL_NAME, Xodb_cat_link_tbl.FLD__cl_sortkey_prefix)) {
- Gfo_usr_dlg_.Instance.Log_many("", "", "xo.personal:cat_link upgrade; fil=~{0}", core_db_url.Raw());
- core_db_conn.Meta_tbl_delete(Xodb_cat_link_tbl.TBL_NAME);
- core_db_conn.Meta_tbl_assert(new Xodb_cat_link_tbl(core_db_conn));
- }
- } catch (Exception e) {
- Gfo_usr_dlg_.Instance.Warn_many("", "", "xo.personal:cat_link upgrade failed; err=~{0}", Err_.Message_gplx_log(e));
- }
-
- // page.cat_db_id: if page.cat_db_id doesn't exist, then add it
- try {
- if (!core_db_conn.Meta_fld_exists(Xowd_page_tbl.TBL_NAME, Xowd_page_tbl.FLD__page_cat_db_id)) {
- Gfo_usr_dlg_.Instance.Log_many("", "", "xo.personal:page.page_cat_db_id upgrade; fil=~{0}", core_db_url.Raw());
- core_db_conn.Meta_fld_append(Xowd_page_tbl.TBL_NAME, Dbmeta_fld_itm.new_int(Xowd_page_tbl.FLD__page_cat_db_id).Default_(-1));
- }
- } catch (Exception e) {
- Gfo_usr_dlg_.Instance.Warn_many("", "", "xo.personal:page.page_cat_db_id upgrade failed; err=~{0}", Err_.Message_gplx_log(e));
- }
-
- // verify json
- Xowdir_wiki_props_mgr core_db_props = Xowdir_wiki_props_mgr_.New_xowa(app, core_db_url);
- core_db_props.Verify(Bool_.N, String_.new_u8(domain), core_db_url);
-
- // check for page_ids < 1
- // select from page_tbl for page_id < 1
- Xow_db_mgr db_mgr = new Xow_db_mgr(dir_url, String_.new_u8(domain));
- db_mgr.Init_by_load(core_db_url);
- Xowd_page_tbl page_tbl = db_mgr.Db__core().Tbl__page();
- List_adp page_ids_list = List_adp_.New();
- Db_rdr page_rdr = page_tbl.Conn().Stmt_sql(Db_sql_.Make_by_fmt(String_.Ary("SELECT page_id FROM page WHERE page_id < 1"))).Exec_select__rls_auto();
- try {
- while (page_rdr.Move_next()) {
- page_ids_list.Add(page_rdr.Read_int("page_id"));
- }
- } finally {page_rdr.Rls();}
-
- // update page_id if any found
- int page_ids_len = page_ids_list.Len();
- if (page_ids_len > 0) {
- int next_id = db_mgr.Db__core().Tbl__cfg().Select_int("db", "page.id_next");
- for (int i = 0; i < page_ids_len; i++) {
- int old_page_id = (int)page_ids_list.Get_at(i);
- int new_page_id = next_id + i;
- Xopg_db_mgr.Update_page_id(db_mgr, old_page_id, new_page_id);
- }
- db_mgr.Db__core().Tbl__cfg().Upsert_int("db", "page.id_next", next_id + page_ids_len);
- }
- }
}
diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_wiki_upgrade_.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_wiki_upgrade_.java
new file mode 100644
index 000000000..ae0ffda20
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_wiki_upgrade_.java
@@ -0,0 +1,102 @@
+/*
+XOWA: the XOWA Offline Wiki Application
+Copyright (C) 2012 gnosygnu@gmail.com
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
+*/
+package gplx.xowa.addons.wikis.directorys.specials.items.bldrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.directorys.*; import gplx.xowa.addons.wikis.directorys.specials.*; import gplx.xowa.addons.wikis.directorys.specials.items.*;
+import gplx.dbs.*; import gplx.dbs.cfgs.*;
+import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.addons.wikis.ctgs.dbs.*;
+import gplx.xowa.addons.wikis.directorys.dbs.*;
+class Xow_wiki_upgrade_ {
+ // correlates loosely to App_.Version; however, should only change when new cases are added to this class
+ private static final int
+ Upgrade_version__v00 = 515
+ , Upgrade_version__v01 = 516
+ , Upgrade_version__cur = 516 // must match latest version
+ ;
+ public static void Upgrade_wiki(Xoae_app app, byte[] domain, Io_url dir_url) {
+ // get conn
+ Io_url core_db_url = gplx.xowa.wikis.data.Xow_db_file__core_.Find_core_fil_or_null(dir_url, String_.new_u8(domain));
+ if (core_db_url == null) {
+ throw Err_.new_wo_type("failed to find core_db for wiki; wiki=~{domain} dir=~{dir_url}", domain, dir_url);
+ }
+ Db_conn core_db_conn = Db_conn_bldr.Instance.Get_or_fail(core_db_url);
+
+ // get cfg
+ Db_cfg_tbl cfg_tbl = Xowd_cfg_tbl_.Get_or_fail(core_db_conn);
+ int upgrade_version = cfg_tbl.Select_int_or(Xowd_cfg_key_.Key__wiki__upgrade__version, Upgrade_version__v00);
+
+ // wiki is up-to-date; exit;
+ if (upgrade_version == Upgrade_version__cur) return;
+
+ // upgrades related to v00
+ if (upgrade_version == Upgrade_version__v00) {
+ Gfo_usr_dlg_.Instance.Log_many("", "", "xo.wiki.upgrade:upgrading; db=~{0} cur=~{1} new=~{2}", core_db_url.Raw(), upgrade_version, Upgrade_version__v01);
+
+ // > v4.2.0
+ // cat_link: if cat_link.cl_sortkey_prefix doesn't exist, then cat_link is old format; drop it and add the new one
+ try {
+ if (!core_db_conn.Meta_fld_exists(Xodb_cat_link_tbl.TBL_NAME, Xodb_cat_link_tbl.FLD__cl_sortkey_prefix)) {
+ Gfo_usr_dlg_.Instance.Log_many("", "", "xo.personal:cat_link upgrade; fil=~{0}", core_db_url.Raw());
+ core_db_conn.Meta_tbl_delete(Xodb_cat_link_tbl.TBL_NAME);
+ core_db_conn.Meta_tbl_assert(new Xodb_cat_link_tbl(core_db_conn));
+ }
+ } catch (Exception e) {
+ Gfo_usr_dlg_.Instance.Warn_many("", "", "xo.personal:cat_link upgrade failed; err=~{0}", Err_.Message_gplx_log(e));
+ }
+
+ // page.cat_db_id: if page.cat_db_id doesn't exist, then add it
+ try {
+ if (!core_db_conn.Meta_fld_exists(Xowd_page_tbl.TBL_NAME, Xowd_page_tbl.FLD__page_cat_db_id)) {
+ Gfo_usr_dlg_.Instance.Log_many("", "", "xo.personal:page.page_cat_db_id upgrade; fil=~{0}", core_db_url.Raw());
+ core_db_conn.Meta_fld_append(Xowd_page_tbl.TBL_NAME, Dbmeta_fld_itm.new_int(Xowd_page_tbl.FLD__page_cat_db_id).Default_(-1));
+ }
+ } catch (Exception e) {
+ Gfo_usr_dlg_.Instance.Warn_many("", "", "xo.personal:page.page_cat_db_id upgrade failed; err=~{0}", Err_.Message_gplx_log(e));
+ }
+
+ // verify json
+ Xowdir_wiki_props_mgr core_db_props = Xowdir_wiki_props_mgr_.New_xowa(app, core_db_url);
+ core_db_props.Verify(Bool_.N, String_.new_u8(domain), core_db_url);
+
+ // check for page_ids < 1
+ // select from page_tbl for page_id < 1
+ Xow_db_mgr db_mgr = new Xow_db_mgr(dir_url, String_.new_u8(domain));
+ db_mgr.Init_by_load(core_db_url);
+ Xowd_page_tbl page_tbl = db_mgr.Db__core().Tbl__page();
+ List_adp page_ids_list = List_adp_.New();
+ Db_rdr page_rdr = page_tbl.Conn().Stmt_sql(Db_sql_.Make_by_fmt(String_.Ary("SELECT page_id FROM page WHERE page_id < 1"))).Exec_select__rls_auto();
+ try {
+ while (page_rdr.Move_next()) {
+ page_ids_list.Add(page_rdr.Read_int("page_id"));
+ }
+ } finally {page_rdr.Rls();}
+
+ // update page_id if any found
+ int page_ids_len = page_ids_list.Len();
+ if (page_ids_len > 0) {
+ int next_id = db_mgr.Db__core().Tbl__cfg().Select_int(Xowd_cfg_key_.Grp__db, Xowd_cfg_key_.Key__wiki__page__id_next);
+ for (int i = 0; i < page_ids_len; i++) {
+ int old_page_id = (int)page_ids_list.Get_at(i);
+ int new_page_id = next_id + i;
+ Xopg_db_mgr.Update_page_id(db_mgr, old_page_id, new_page_id);
+ }
+ db_mgr.Db__core().Tbl__cfg().Upsert_int(Xowd_cfg_key_.Grp__db, Xowd_cfg_key_.Key__wiki__page__id_next, next_id + page_ids_len);
+ }
+
+ cfg_tbl.Upsert_int(Xowd_cfg_key_.Key__wiki__upgrade__version, Upgrade_version__v01);
+ }
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_key_.java b/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_key_.java
index 7b639d962..b42fb8e5e 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_key_.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_key_.java
@@ -31,8 +31,13 @@ public class Xowd_cfg_key_ {
, Key__init__siteinfo_misc = "props.siteinfo_misc"
, Key__init__siteinfo_mainpage = "props.siteinfo_mainpage"
- , Grp__wiki_core = "xowa.wiki.core"
- , Key__wiki_core__domain = "xowa.wiki.core.domain"
- , Key__wiki_core__name = "xowa.wiki.core.name"
+ , Grp__wiki__core = "xowa.wiki.core"
+ , Key__wiki__core__domain = "xowa.wiki.core.domain"
+ , Key__wiki__core__name = "xowa.wiki.core.name"
+
+ , Key__wiki__upgrade__version = "xowa.wiki.upgrade.version"
+
+ , Grp__db = "db"
+ , Key__wiki__page__id_next = "page.id_next"
;
}
diff --git a/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_tbl_.java b/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_tbl_.java
index bfe67faf1..0f0951024 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_tbl_.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/Xowd_cfg_tbl_.java
@@ -38,8 +38,8 @@ public class Xowd_cfg_tbl_ {
}
public static void Insert__create(Xowe_wiki wiki) {Insert__create(wiki.Data__core_mgr().Db__core().Tbl__cfg(), wiki.Domain_str(), wiki.Domain_str(), wiki.Props().Main_page());}
public static void Insert__create(Db_cfg_tbl cfg_tbl, String domain, String name, byte[] main_page) {
- cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki_core__domain , domain);
- cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki_core__name , name);
+ cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__domain , domain);
+ cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__name , name);
cfg_tbl.Insert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__main_page , main_page);
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__modified_latest, Datetime_now.Get().XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time));
}
diff --git a/400_xowa/src/gplx/xowa/wikis/data/Xowd_core_db_props.java b/400_xowa/src/gplx/xowa/wikis/data/Xowd_core_db_props.java
index 00993807b..c24293944 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/Xowd_core_db_props.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/Xowd_core_db_props.java
@@ -68,7 +68,7 @@ public class Xowd_core_db_props {
, cfg_hash.Get_by(Cfg_key__hzip_mode_is_b256).To_yn_or(Bool_.N)
);
}
- private static final String Cfg_grp = gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__wiki_core
+ private static final String Cfg_grp = gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__wiki__core
, Cfg_key__schema_version = "schema_version"
, Cfg_key__layout_text = "layout_text"
, Cfg_key__layout_html = "layout_html"
diff --git a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_sql.java b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_sql.java
index a1e0da703..e05b5e904 100644
--- a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_sql.java
+++ b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_sql.java
@@ -28,7 +28,7 @@ public class Xodb_save_mgr_sql implements Xodb_save_mgr {
int ns_id = ttl.Ns().Id();
Xow_db_file db_file = db_mgr.Core_data_mgr().Db__core();
int ns_count = db_file.Tbl__ns().Select_ns_count(ns_id) + 1;
- int page_id = db_file.Tbl__cfg().Select_int_or("db", "page.id_next", -1);
+ int page_id = db_file.Tbl__cfg().Select_int_or(Xowd_cfg_key_.Grp__db, Xowd_cfg_key_.Key__wiki__page__id_next, -1);
if (page_id == -1) { // HACK: changed for tests; was dbs.qrys.Db_qry_sql.rdr_("SELECT (Max(page_id) + 1) AS max_page_id FROM page;")
Db_rdr rdr = db_mgr.Core_data_mgr().Tbl__page().Conn().Stmt_select(db_file.Tbl__page().Tbl_name(), String_.Ary(db_file.Tbl__page().Fld_page_id()), Dbmeta_fld_itm.Str_ary_empty).Exec_select__rls_auto();
try {
@@ -38,7 +38,7 @@ public class Xodb_save_mgr_sql implements Xodb_save_mgr {
if (cur_page_id > max_page_id) max_page_id = cur_page_id;
}
page_id = max_page_id + 1;
- db_mgr.Core_data_mgr().Tbl__cfg().Upsert_int("db", "page.id_next", page_id + 1);
+ db_mgr.Core_data_mgr().Tbl__cfg().Upsert_int(Xowd_cfg_key_.Grp__db, Xowd_cfg_key_.Key__wiki__page__id_next, page_id + 1);
} finally {rdr.Rls();}
}
Xow_db_mgr fsys_mgr = db_mgr.Core_data_mgr();
@@ -53,7 +53,7 @@ public class Xodb_save_mgr_sql implements Xodb_save_mgr {
try {
db_mgr.Core_data_mgr().Create_page(page_core_tbl, page_text_tbl, page_id, ns_id, ttl.Page_db(), redirect, Datetime_now.Get(), text_zip, text_raw.length, ns_count, page_text_db.Id(), -1);
db_file.Tbl__ns().Update_ns_count(ns_id, ns_count);
- db_file.Tbl__cfg().Update_int("db", "page.id_next", page_id + 1);
+ db_file.Tbl__cfg().Update_int(Xowd_cfg_key_.Grp__db, Xowd_cfg_key_.Key__wiki__page__id_next, page_id + 1);
} finally {
page_core_tbl.Insert_end();
page_text_tbl.Insert_end();
diff --git a/xowa.home.version b/xowa.home.version
index 8f6424dd6..10add0a5b 100644
--- a/xowa.home.version
+++ b/xowa.home.version
@@ -1 +1 @@
-v4.2.0__reupload_upload_db
+test 7