header

Convenient updates

Keep your installation up-to-date with the convenient update solution provided by ProjectForge.

Keep your installation up-to-date with the convenient update solution provided by ProjectForge.

 

Updates through simple clicks

ProjectForge provides a very convenient method for updating your ProjectForge installation. Since version 3.5.2 ProjectForge checks the system and data-base on start-up of the web server. If any update is needed your administrators will be redirected directly to the update page. You can update your system from any previous version by simply clicking the update-button.
Both the data base scheme and the migration of data base content will be updated automatically with scripts.
 

 

Manually updates without update mechanism

You can do the updates manually (not really needed). Don't forget to call 'create data-base indices' on the web systems page for the creation of indices afterwards.

Stop support for manually db migration since version 6.0.0

Since ProjectForge version 6.0.0 we stop the support for manually migration. Migration is done bei JPA.
You can turn on the properties:

#Show the executed sql on console
hibernate.show_sql=true
#Format the shown execute sql in formatted form
hibernate.format_sql=true

to get the sql statements, which are executed for migration.

Manual update from version 5.2 to 5.3

ALTER TABLE T_PF_USER ADD COLUMN last_password_change TIMESTAMP;
ALTER TABLE T_PF_USER ADD COLUMN password_salt VARCHAR(40);

 

Manual update from version 5.1 to 5.2

ALTER TABLE T_SCRIPT ADD COLUMN file LONGVARBINARY;
ALTER TABLE T_SCRIPT ADD COLUMN file_name VARCHAR(255); 
ALTER TABLE T_SCRIPT ALTER COLUMN script RENAME TO old_script
ALTER TABLE T_SCRIPT ALTER COLUMN scriptbackup RENAME TO old_script_backup
ALTER TABLE T_SCRIPT ADD COLUMN script LONGVARBINARY;
ALTER TABLE T_SCRIPT ADD COLUMN script_backup LONGVARBINARY; 
-- Copy old scripts manually or use ProjectForge-Updater instead!
ALTER TABLE t_fibu_auftrag_position ADD COLUMN period_of_performance_begin DATE;
ALTER TABLE t_fibu_auftrag_position ADD COLUMN period_of_performance_end DATE;

 

Manual update from version 5.0 to 5.1

ALTER TABLE T_PLUGIN_CALENDAR_EVENT ALTER COLUMN note TYPE varchar(4000);
DROP TABLE T_PLUGIN_CALENDAR_EVENT_ATTENDEE;
CREATE TABLE T_PLUGIN_CALENDAR_EVENT_ATTENDEE (
  pk INT4 NOT NULL,
  comment VARCHAR(4000),
  status VARCHAR(100),
  user_id INT4,
  url VARCHAR(255),
  login_token VARCHAR(255),
  comment_of_attendee VARCHAR(4000),
  team_event_fk INT4,
  PRIMARY KEY (pk),
  FOREIGN KEY (user_id) REFERENCES T_PF_USER(pk),
  FOREIGN KEY (team_event_fk) REFERENCES T_PLUGIN_CALENDAR_EVENT(pk)
);
ALTER TABLE T_PLUGIN_CALENDAR ADD COLUMN ext_subscription BOOLEAN DEFAULT 'false' NOT NULL;
ALTER TABLE T_PLUGIN_CALENDAR ADD COLUMN ext_subscription_calendar_binary BYTEA;
ALTER TABLE T_PLUGIN_CALENDAR ADD COLUMN ext_subscription_hash VARCHAR(255);
ALTER TABLE T_PLUGIN_CALENDAR ADD COLUMN ext_subscription_url VARCHAR(255);
ALTER TABLE T_PLUGIN_CALENDAR ADD COLUMN ext_subscription_update_interval INT4;

 

Manual update from version 4.3.1 to 5.0

CREATE TABLE T_PLUGIN_CALENDAR (
  pk INT NOT NULL,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN NOT NULL,
  owner_fk INT,
  full_access_group_ids VARCHAR(255),
  full_access_user_ids VARCHAR(255),
  readonly_access_group_ids VARCHAR(255),
  readonly_access_user_ids VARCHAR(255),
  minimal_access_group_ids VARCHAR(255),
  minimal_access_user_ids VARCHAR(255),
  description VARCHAR(4000),
  title VARCHAR(1000),
  PRIMARY KEY (pk),
  FOREIGN KEY (owner_fk) REFERENCES T_PF_USER(pk)
);
CREATE TABLE T_PLUGIN_CALENDAR_EVENT (
  pk INT NOT NULL,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN NOT NULL,
  subject VARCHAR(1000),
  location VARCHAR(1000),
  all_day BOOLEAN NOT NULL,
  calendar_fk INT,
  start_date TIMESTAMP,
  end_date TIMESTAMP,
  note VARCHAR(255),
  organizer VARCHAR(1000),
  recurrence_rule VARCHAR(4000),
  recurrence_ex_date VARCHAR(4000),
  recurrence_date VARCHAR(255),
  recurrence_reference_id VARCHAR(255),
  recurrence_until TIMESTAMP,
  external_uid VARCHAR(255),
  reminder_duration INT,
  reminder_duration_unit VARCHAR(255),
  reminder_action_type VARCHAR(255),
  PRIMARY KEY (pk),
  FOREIGN KEY (calendar_fk) REFERENCES T_PLUGIN_CALENDAR(pk)
);
CREATE TABLE T_PLUGIN_CALENDAR_EVENT_ATTENDEE (
  pk INT NOT NULL,
  url VARCHAR(255),
  userId INT,
  login_token VARCHAR(255),
  status VARCHAR(255),
  comment VARCHAR(255),
  PRIMARY KEY (pk)
);
ALTER TABLE T_PLUGIN_CALENDAR_EVENT_ATTENDEE ADD COLUMN team_event_fk INT;
ALTER TABLE T_PLUGIN_CALENDAR_EVENT_ATTENDEE ADD CONSTRAINT T_PLUGIN_CALENDAR_EVENT_ATTENDEE_team_event_fk FOREIGN KEY (team_event_fk) REFERENCES T_PLUGIN_CALENDAR_EVENT(pk);

ALTER TABLE t_fibu_rechnung ADD COLUMN konto_id INT;
ALTER TABLE t_fibu_rechnung ADD CONSTRAINT t_fibu_rechnung_konto_id FOREIGN KEY (konto_id) REFERENCES T_FIBU_KONTO(pk);
ALTER TABLE T_PF_USER ADD COLUMN ssh_public_key VARCHAR(1000);
update t_contract set status='IN_PROGRESS' where status='IN_PROGRES';

 

Manual update from version 4.2 to 4.3.1

ALTER TABLE T_FIBU_PROJEKT ADD COLUMN konto_id INT4;
ALTER TABLE T_FIBU_PROJEKT ADD CONSTRAINT T_FIBU_PROJEKT_konto_id FOREIGN KEY (konto_id) REFERENCES T_FIBU_KONTO(pk);

 

Manual update from version 4.1 to 4.2

ALTER TABLE T_PF_USER ADD COLUMN authentication_token VARCHAR(100);
ALTER TABLE T_PF_USER ADD COLUMN local_user BOOLEAN DEFAULT 'false' NOT NULL; 
ALTER TABLE T_PF_USER ADD COLUMN restricted_user BOOLEAN DEFAULT 'false' NOT NULL; 
ALTER TABLE T_PF_USER ADD COLUMN deactivated BOOLEAN DEFAULT 'false' NOT NULL; 
ALTER TABLE T_PF_USER ADD COLUMN ldap_values VARCHAR(4000);
ALTER TABLE T_GROUP ADD COLUMN local_group BOOLEAN DEFAULT 'false' NOT NULL;
ALTER TABLE t_fibu_eingangsrechnung ADD COLUMN ui_status_as_xml VARCHAR(10000);
ALTER TABLE t_fibu_rechnung ADD COLUMN ui_status_as_xml VARCHAR(10000);
ALTER TABLE t_fibu_auftrag ADD COLUMN ui_status_as_xml VARCHAR(10000);

 

Manual update from version 4.0 to 4.1

ALTER TABLE T_PF_USER ADD COLUMN first_day_of_week INT4;
ALTER TABLE T_PF_USER ADD COLUMN hr_planning BOOLEAN DEFAULT 'true' NOT NULL;

 

Manual update from version 3.6.1 to 4.0

ALTER TABLE T_FIBU_KUNDE ADD COLUMN konto_id INT;
ALTER TABLE T_FIBU_KUNDE ADD CONSTRAINT T_FIBU_KUNDE_konto_id FOREIGN KEY (konto_id) REFERENCES T_FIBU_KONTO(pk);
ALTER TABLE t_fibu_eingangsrechnung ADD COLUMN konto_id INT;
ALTER TABLE t_fibu_eingangsrechnung ADD CONSTRAINT t_fibu_eingangsrechnung_konto_id FOREIGN KEY (konto_id) REFERENCES T_FIBU_KONTO(pk);
ALTER TABLE t_fibu_eingangsrechnung ADD COLUMN payment_type VARCHAR(20);
ALTER TABLE T_FIBU_KONTO ADD COLUMN status VARCHAR(10);
ALTER TABLE T_TASK ADD COLUMN protectionOfPrivacy BOOLEAN DEFAULT 'false' NOT NULL;
ALTER TABLE T_ADDRESS ADD COLUMN communication_language VARCHAR(255);
ALTER TABLE T_SCRIPT ADD COLUMN parameter6Name VARCHAR(100);
ALTER TABLE T_SCRIPT ADD COLUMN parameter6Type VARCHAR(20);
CREATE TABLE T_PLUGIN_BANK_ACCOUNT (
  pk INT NOT NULL,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN NOT NULL,
  account_number VARCHAR(255) NOT NULL,
  bank VARCHAR(255),
  bank_identification_code VARCHAR(100),
  name VARCHAR(255),
  description VARCHAR(4000),
  PRIMARY KEY (pk)
);
CREATE TABLE T_PLUGIN_BANK_ACCOUNT_BALANCE (
  pk INT NOT NULL,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN NOT NULL,
  account_fk INT,
  date_col DATE NOT NULL,
  amount DECIMAL(18, 5) NOT NULL,
  description VARCHAR(4000),
  PRIMARY KEY (pk),
  FOREIGN KEY (account_fk) REFERENCES T_PLUGIN_BANK_ACCOUNT(pk)
);
CREATE TABLE T_PLUGIN_BANK_ACCOUNT_RECORD (
  pk INT NOT NULL,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN NOT NULL,
  account_fk INT,
  date_col DATE NOT NULL,
  amount DECIMAL(18, 5) NOT NULL,
  text VARCHAR(255),
  PRIMARY KEY (pk),
  FOREIGN KEY (account_fk) REFERENCES T_PLUGIN_BANK_ACCOUNT(pk)
);

 

Manual update from version 3.6.0 to 3.6.1

CREATE TABLE T_SPACE (
  pk INT4 NOT NULL,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN NOT NULL,
  identifier VARCHAR(20) NOT NULL,
  status VARCHAR(20),
  title VARCHAR(255) NOT NULL,
  description VARCHAR(4000),
  PRIMARY KEY (pk)
);
ALTER TABLE T_SPACE ADD CONSTRAINT title_unique UNIQUE (title);
ALTER TABLE T_SPACE ADD CONSTRAINT identifier_unique UNIQUE (identifier);
CREATE TABLE T_SPACE_RIGHT (
  pk INT4 NOT NULL,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN NOT NULL,
  identifier VARCHAR(100) NOT NULL,
  space_fk INT4,
  user_fk INT4,
  value VARCHAR(4000),
  comment VARCHAR(4000),
  PRIMARY KEY (pk),
  FOREIGN KEY (space_fk) REFERENCES T_SPACE(pk),
  FOREIGN KEY (user_fk) REFERENCES T_PF_USER(pk)
);

 

Manual update from version 3.5.4 to 3.6.0

CREATE TABLE T_PLUGIN_TODO (
  pk INT4 NOT NULL,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN NOT NULL,
  reporter_fk INT4,
  assignee_fk INT4,
  task_id INT4,
  subject VARCHAR(1000),
  comment VARCHAR(4000),
  description VARCHAR(4000),
  status VARCHAR(20),
  recent BOOLEAN NOT NULL,
  type VARCHAR(20),
  priority VARCHAR(20),
  due_date DATE,
  resubmission DATE,
  PRIMARY KEY (pk),
  FOREIGN KEY (reporter_fk) REFERENCES T_PF_USER(pk),
  FOREIGN KEY (assignee_fk) REFERENCES T_PF_USER(pk),
  FOREIGN KEY (task_id) REFERENCES T_TASK(pk)
);
CREATE TABLE T_PLUGIN_MEMO (
  pk INT4 NOT NULL,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN NOT NULL,
  owner_fk INT4,
  subject VARCHAR(1000),
  memo VARCHAR(4000),
  PRIMARY KEY (pk),
  FOREIGN KEY (owner_fk) REFERENCES T_PF_USER(pk)
);

 

Manual update from version 3.5.3 to 3.5.4

CREATE TABLE t_database_update (
  update_date TIMESTAMP NOT NULL,
  region_id VARCHAR(1000),
  version VARCHAR(15),
  execution_result VARCHAR(1000),
  executed_by_user_fk INT4,
  description VARCHAR(4000),
  PRIMARY KEY (update_date),
  FOREIGN KEY (executed_by_user_fk) REFERENCES T_PF_USER(pk)
);
ALTER TABLE t_pf_user ADD COLUMN date_format VARCHAR(20);
ALTER TABLE t_pf_user ADD COLUMN excel_date_format VARCHAR(20);
ALTER TABLE t_pf_user ADD COLUMN time_notation VARCHAR(6);

 

Manual update from version 3.5.0, 3.5.1, 3.5.2 to 3.5.3

Nothing needed to be done in the data-base.

Manual update from version 3.4.3 to 3.5.0

ALTER TABLE t_book ADD COLUMN book_type VARCHAR(20)

 

Manual update from version 3.4.0 to 3.4.3

ALTER TABLE t_group_task_access ADD COLUMN description VARCHAR(4000)

 

Manual update from version 3.3.47 to 3.4.0

ALTER TABLE t_gantt_chart ADD COLUMN settings_as_xml VARCHAR(10000);
ALTER TABLE t_gantt_chart ADD COLUMN style_as_xml VARCHAR(10000);
ALTER TABLE t_gantt_chart ADD COLUMN gantt_objects_as_xml VARCHAR(10000);
ALTER TABLE t_gantt_chart ADD COLUMN read_access VARCHAR(16);
ALTER TABLE t_gantt_chart ADD COLUMN write_access VARCHAR(16);
ALTER TABLE t_gantt_chart ADD COLUMN owner_fk INT4;
ALTER TABLE t_gantt_chart ADD CONSTRAINT t_gantt_chart_owner_fk FOREIGN KEY (owner_fk) REFERENCES t_pf_user(pk);
ALTER TABLE t_task RENAME COLUMN duration_days TO duration;
ALTER TABLE t_task RENAME COLUMN gantt_dep_day_offset TO gantt_predecessor_offset;
ALTER TABLE t_task RENAME COLUMN gantt_dep_on_task_fk TO gantt_predecessor_fk;
ALTER TABLE t_task ADD COLUMN gantt_rel_type VARCHAR(15);
ALTER TABLE t_task DROP COLUMN gantt_dep_type;

 

Manual update from version 3.3.46 to 3.3.47

CREATE TABLE t_gantt_chart (
  pk INT4,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN,
  name VARCHAR(1000),
  task_fk INT4,
  PRIMARY KEY (pk),
  FOREIGN KEY (task_fk) REFERENCES t_task(pk)
);

CREATE TABLE t_contract (
  pk INT4,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN,
  number INT4,
  c_date DATE,
  valid_from DATE,
  valid_until DATE,
  title VARCHAR(1000),
  co_contractor_a VARCHAR(1000),
  contract_person_a VARCHAR(1000),
  signer_a VARCHAR(1000),
  co_contractor_b VARCHAR(1000),
  contract_person_b VARCHAR(1000),
  signer_b VARCHAR(1000),
  signing_date DATE,
  type VARCHAR(100),
  status VARCHAR(100),
  text VARCHAR(4000),
  reference VARCHAR(1000),
  filing VARCHAR(1000),
  resubmission_on_date DATE,
  due_date DATE,
  PRIMARY KEY (pk)
);
ALTER TABLE t_contract ADD CONSTRAINT t_contract_uniq UNIQUE (number);

ALTER TABLE t_task ADD COLUMN workpackage_code VARCHAR(100);
ALTER TABLE t_task ADD COLUMN gantt_type VARCHAR(10);
ALTER TABLE t_task ADD COLUMN duration_days DECIMAL(10, 5);
ALTER TABLE t_task ADD COLUMN gantt_dep_type CHAR(2);
ALTER TABLE t_task ADD COLUMN gantt_dep_day_offset INT4;
ALTER TABLE t_task ADD COLUMN gantt_dep_on_task_fk INT4;
ALTER TABLE t_task ADD CONSTRAINT t_task_gantt_dep_on_task_fk FOREIGN KEY (gantt_dep_on_task_fk) REFERENCES t_task(pk);
ALTER TABLE t_task DROP CONSTRAINT t_task_parent_task_id_key;
ALTER TABLE t_task RENAME COLUMN name TO title;
ALTER TABLE t_task RENAME COLUMN resumption TO start_date;
ALTER TABLE t_task RENAME COLUMN deadline TO end_date;
ALTER TABLE t_task DROP COLUMN from_date;
ALTER TABLE t_task ADD CONSTRAINT t_task_parent_task_id_key UNIQUE (parent_task_id, title);

ALTER TABLE t_pf_user ADD COLUMN jira_username VARCHAR(100);
ALTER TABLE t_imported_meb_entry ADD COLUMN source VARCHAR(10);
ALTER TABLE t_group_task_access ADD COLUMN recursive BOOLEAN NOT NULL DEFAULT(true);
DROP INDEX idx_fk_t_task_kost2_id;
DROP INDEX idx_fk_t_task_projekt_id;
DROP INDEX idx_fk_t_task_old_kost2_id;
DROP INDEX idx_fk_t_task_old_projekt_id;

 

Manual update from version 3.3.44 to 3.3.45

ALTER TABLE t_pf_user ADD COLUMN personal_meb_identifiers VARCHAR(255);
CREATE TABLE t_meb_entry (
  pk INT4,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN,
  sender VARCHAR(255) NOT NULL,
  title VARCHAR(255),
  origin_message VARCHAR(4000) NOT NULL,
  message VARCHAR(4000),
  date TIMESTAMP NOT NULL,
  status VARCHAR(20) NOT NULL,
  owner_fk INT4,
  PRIMARY KEY (pk),
  FOREIGN KEY (owner_fk) REFERENCES t_pf_user(pk)
);
ALTER TABLE t_meb_entry ADD CONSTRAINT t_mep_entry_uniq UNIQUE (owner_fk, sender, date, origin_message);

CREATE TABLE t_imported_meb_entry (
  pk INT4,
  created TIMESTAMP,
  last_update TIMESTAMP,
  deleted BOOLEAN,
  sender VARCHAR(255) NOT NULL,
  check_sum VARCHAR(255) NOT NULL,
  date TIMESTAMP NOT NULL,
  PRIMARY KEY (pk)
);

 

Manual update from version 3.3.43 to 3.3.44

drop table t_user_right;
create table t_user_right (
 pk int4 not null,
 created timestamp,
 deleted boolean not null,
 last_update timestamp,
 right_id varchar(40), 
 value varchar(40), 
 user_fk int4 not null,
 primary key (pk),
 foreign key (user_fk) references t_pf_user(pk)
);
alter table t_user_right add constraint t_user_right_user_fk_key unique (user_fk, right_id);