Current development on JAMWiki is primarily focused on maintenance rather than new features due to a lack of developer availability. If you are interested in working on JAMWiki please join the jamwiki-devel mailing list.

JAMWiki 0.0.5

Release Notes[edit]

IMPORTANT: While reasonably stable, the JAMWiki code is undergoing rapid development and should be considered beta software, not suitable for deployment on production systems. Also note that this version changes the database schema used in previous versions - see below for upgrade instructions.

JAMWiki 0.0.5 is now available for download as a WAR file suitable for deployment on a web application server. This release includes major work to support multiple databases, with MySql 4.1 and Oracle now officially supported in addition to Postgres 8.0. See the changelog for a more complete list of changes and fixes.

To install the file simply deploy it like any other WAR file, restart the web application server, and then view the URL http://www.yourserver.com/context/ to begin the configuration process (context is the web application context root).

See the README.txt and CHANGELOG.txt files for additional details about this release. Additional information and documentation can be found at http://jamwiki.org/.

Changelog[edit]

  • FEATURE: Add support for MySql 4.1.
  • FEATURE: Add support for Oracle 10g.
  • FEATURE: Code cleanups including abstraction of database code.
  • BUG: Do not allow directories to be created in the filesystem root during setup.
  • BUG: User menu link for user was broken if display name not set.
  • FEATURE: Hide Special:Attach - not currently supported.
  • FEATURE: Display an explanation message on the login page when requiring login to an admin page.
  • BUG: Login to Special:Delete went to Special:Admin.
  • FEATURE: Log sql execution time info for debugging.
  • FEATURE: Remove the "Admin" link from the footer, display in the user menu ONLY for users who are admins.
  • FEATURE: Update database schema - BREAKS ANY EXISTING INSTALLATION! See the release notes for the database update syntax.
  • FEATURE: User contributions page now has the same style as the recent changes and history pages.
  • FEATURE: Add unique constraints to several database fields.

Upgrade Instructions[edit]

Run the following SQL commands to update the database:


/* change columns from BOOLEAN to char */
alter table jam_wiki_user drop column is_admin;
alter table jam_wiki_user add column is_admin CHAR NOT NULL DEFAULT '0';
/* be sure to manually set is_admin to '1' for any admin users */
alter table jam_topic drop column topic_deleted;
alter table jam_topic add column topic_deleted CHAR DEFAULT '0';
/* be sure to manually set topic_deleted to '1' for any deleted topics */
alter table jam_topic drop column topic_read_only;
alter table jam_topic add column topic_read_only CHAR DEFAULT '0';
/* be sure to manually set topic_read_only to '1' for any read-only topics */
alter table jam_topic drop column topic_admin_only;
alter table jam_topic add column topic_admin_only CHAR DEFAULT '0';
/* be sure to manually set topic_admin_only to '1' for any admin-only topics */

/* drop jam_wiki_user.is_blocked */
alter table jam_wiki_user drop column is_blocked;

/* drop jam_recent_change.recent_change_id */
alter table jam_recent_change drop constraint jam_pk_recent_change;
alter table jam_recent_change drop column recent_change_id;
alter table jam_recent_change
   add constraint jam_pk_recent_change PRIMARY KEY (topic_version_id);

/* drop defaults for primary keys */
alter table jam_virtual_wiki alter column jam_virtual_wiki_id drop default;
alter table jam_wiki_user alter column jam_wiki_user_id drop default;
alter table jam_topic alter column jam_topic_id drop default;
alter table jam_topic_version alter column jam_topic_version_id drop default;
alter table jam_notification alter column jam_notification_id drop default;

/* add unique constraints */
alter table jam_virtual_wiki
   add CONSTRAINT jam_unique_vwiki_name UNIQUE (virtual_wiki_name);
alter table jam_wiki_user add CONSTRAINT jam_unique_wiki_user_login UNIQUE (login);
alter table jam_wiki_user_info
   add CONSTRAINT jam_unique_wiki_uinfo_login UNIQUE (login);
alter table jam_topic
   add CONSTRAINT jam_unique_topic_name_vwiki UNIQUE (topic_name, virtual_wiki_id);

/* rename constraints */
alter table jam_virtual_wiki drop CONSTRAINT jam_pk_virtual_wiki;
alter table jam_virtual_wiki add CONSTRAINT jam_pk_vwiki PRIMARY KEY (virtual_wiki_id);
alter table jam_wiki_user_info drop CONSTRAINT jam_pk_wiki_user_info;
alter table jam_wiki_user_info add CONSTRAINT jam_pk_wiki_uinfo PRIMARY KEY (wiki_user_id);
alter table jam_wiki_user_info drop CONSTRAINT jam_fk_wiki_user_info_wiki_user;
alter table jam_wiki_user_info
   add CONSTRAINT jam_fk_wiki_uinfo_wiki_user FOREIGN KEY (wiki_user_id)
   REFERENCES jam_wiki_user(wiki_user_id);
alter table jam_topic drop CONSTRAINT jam_fk_topic_virtual_wiki;
alter table jam_topic
   add CONSTRAINT jam_fk_topic_vwiki FOREIGN KEY (virtual_wiki_id)
   REFERENCES jam_virtual_wiki(virtual_wiki_id);
alter table jam_topic_version drop CONSTRAINT jam_pk_topic_version;
alter table jam_topic_version
   add CONSTRAINT jam_pk_topic_ver PRIMARY KEY (topic_version_id);
alter table jam_topic_version drop CONSTRAINT jam_fk_topic_version_topic;
alter table jam_topic_version
   add CONSTRAINT jam_fk_topic_ver_topic FOREIGN KEY (topic_id)
   REFERENCES jam_topic(topic_id);
alter table jam_topic_version drop CONSTRAINT jam_fk_topic_version_wiki_user;
alter table jam_topic_version
   add CONSTRAINT jam_fk_topic_ver_wiki_user FOREIGN KEY (wiki_user_id)
   REFERENCES jam_wiki_user(wiki_user_id);
alter table jam_topic_version
   drop CONSTRAINT jam_fk_topic_version_previous_topic_version;
alter table jam_topic_version
   add CONSTRAINT jam_fk_topic_ver_prv_topic_ver
   FOREIGN KEY (previous_topic_version_id)
   REFERENCES jam_topic_version(topic_version_id);
alter table jam_recent_change drop CONSTRAINT jam_pk_recent_change;
alter table jam_recent_change
   add CONSTRAINT jam_pk_rchange PRIMARY KEY (topic_version_id);
alter table jam_recent_change
   drop CONSTRAINT jam_fk_recent_change_topic_version;
alter table jam_recent_change
   add CONSTRAINT jam_fk_rchange_topic_ver
   FOREIGN KEY (topic_version_id)
   REFERENCES jam_topic_version(topic_version_id);
alter table jam_recent_change
   drop CONSTRAINT jam_fk_recent_change_previous_topic_version;
alter table jam_recent_change
   add CONSTRAINT jam_fk_rchange_prv_topic_ver
   FOREIGN KEY (previous_topic_version_id)
   REFERENCES jam_topic_version(topic_version_id);
alter table jam_recent_change drop CONSTRAINT jam_fk_recent_change_topic;
alter table jam_recent_change
   add CONSTRAINT jam_fk_rchange_topic FOREIGN KEY (topic_id)
   REFERENCES jam_topic(topic_id);
alter table jam_recent_change
   drop CONSTRAINT jam_fk_recent_change_wiki_user;
alter table jam_recent_change
   add CONSTRAINT jam_fk_rchange_wiki_user FOREIGN KEY (wiki_user_id)
   REFERENCES jam_wiki_user(wiki_user_id);
alter table jam_recent_change
   drop CONSTRAINT jam_fk_recent_change_virtual_wiki;
alter table jam_recent_change
   add CONSTRAINT jam_fk_rchange_vwiki FOREIGN KEY (virtual_wiki_id)
   REFERENCES jam_virtual_wiki(virtual_wiki_id);