ChiliProject is not maintained anymore. Please be advised that there will be no more updates.

We do not recommend that you setup new ChiliProject instances and we urge all existing users to migrate their data to a maintained system, e.g. Redmine. We will provide a migration script later. In the meantime, you can use the instructions by Christian Daehn.

Chiliproject 2.x with Oracle Database

Added by rob glazer at 2011-05-16 04:26 pm

I have installed chiliproject into an oracle 11g database on ubuntu 11.10 server

Version 2.x

  • Create chiliproject database schema
    • dba role set as default
    • grant unlimited or quota on default tablespace
  • download latest version of ruby-oci8 (2.0.6)
    • gem install ruby-oci8<version>.gem
    • gem install activerecord-oracle_enhanced-adapter
  • configuration
    • config/database.yml
      production:
        adapter: oracle_enhanced
        database: {db name}
        host: {server name}
        port: 1521
        username: chiliproject
        password: {password}
        encoding: utf8
      
    • config/environment.rb - add:
      ENV['NLS_LANG']='american_america.AL32UTF8'
      ENV['ORACLE_HOME']='{path to oracle home}'
      ENV['TNS_ADMIN']='/u0/app/oracle/product/11.2.0/dbhome_1/network/admin'
      ENV['LD_LIBRARY_PATH']='/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/lib'
      
    • copy configuration.yml.example to configuration.yml - modify the file according to your smtp mail information
    • Gemfile add:
      gem "activerecord-oracle_enhanced-adapter", "1.3.2" 
      gem "rake", "~> 0.8.7" 
      gem "ruby-oci8", "2.0.6" 
      
      • if mysql, postgres or sqlite is not installed comment out the sections
        group :mysql 
        group :mysql2
        group :postgres
        group :sqlite
        
  • Install
    • set environment
      export ORACLE_HOME={path to oracle home}
      export TNS_ADMIN=$ORACLE_HOME/network/admin
      export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/lib
      export PATH=$PATH:/var/lib/gems/1.8/bin
      
    • gem update - needed to uninstall newer versions of rake and i18n after update
    • bundle update
    • bundle exec rake generate_session_store
    • db/migrate
      • 087_change_projects_description_to_text.rb -- comment out change_column line
      • 107_add_open_id_authentication_tables.rb - table names too long (over 30 characters) rename to open_id_auth_associations and open_id_auth_nonces
      • 20100705164950_change_changes_path_length_limit.rb -- comment out change_column lines
      • 20100714111651_prepare_journals_for_acts_as_journalized.rb -- comment out the t.index lines
      • 20110227125750_change_journal_details_values_to_text.rb -- comment out the change_column lines
  • vendor/plugins
    • awesome_nested_set/lib/awesome_nested_set.rb -- remove "AS" (line 117)
  • Post Install
    • increase column size (this is to make the changes in the db/migrate scripts that had the change_column lines commented out)
      ALTER TABLE CHILIPROJECT.PROJECTS
      MODIFY(DESCRIPTION VARCHAR2(4000 CHAR));
      ALTER TABLE CHILIPROJECT.CHANGES
      MODIFY(PATH VARCHAR2(4000 CHAR));
      ALTER TABLE CHILIPROJECT.CHANGES
      MODIFY(FROM_PATH VARCHAR2(4000 CHAR));
      ALTER TABLE CHILIPROJECT.JOURNAL_DETAILS
      MODIFY(OLD_VALUE VARCHAR2(4000 CHAR));
      ALTER TABLE CHILIPROJECT.JOURNAL_DETAILS
      MODIFY(VALUE VARCHAR2(4000 CHAR));
      
*Oracle treats default => “” as a null – necessary to change the :null => false to :null => true
  • Script to find nullable = N and default = '' {found it on AskTom}
    CREATE OR REPLACE FUNCTION get_col_default (
       p_table_name    IN all_tab_cols.table_name%TYPE,
       p_column_name   IN all_tab_cols.column_name%TYPE)
       RETURN VARCHAR2
    AS
       l_data_default   LONG;
    BEGIN
       SELECT data_default
         INTO l_data_default
         FROM user_tab_cols
        WHERE table_name = p_table_name AND column_name = p_column_name;
    
       RETURN SUBSTR (l_data_default, 1, 4000);
    END;
    /
    
  • script to create alter statements - run the output
    select 'ALTER TABLE CHILIPROJECT.'||table_name||' MODIFY('||column_name||' NULL);' from user_tab_cols
    where nullable = 'N'
    and instr(get_col_default(table_name, column_name),'''')> 0;
    
  • remove dba role from chiliproject user
  • grant create session to chiliproject user (this is the minimum rights that is required)

Other Fixes

  • Gantt Chart error and Calendar not displaying Issues - this relates to the fields defined as Date type in Oracle and the Oracle Enhanced Adapter
    • currently testing this method out: created a new file in /config/initializers - oracle.rb
      ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.emulate_dates = true
      

Mylyn Plugin

  • modify vendor/plugins/redmine-mylyn-connector/app/helpers/mylyn_connector/issues_helper.rb
    def journals issue
        issue.journals.find(:all, :conditions => ["notes IS NOT NULL AND notes != ''"])
    end
    
    def journals issue
        issue.journals.find(:all, :conditions => ["length(notes) > 0"])
    end
    

Replies (3)

RE: Chiliproject 1.3.0 with Oracle Database - Update 1.4.0 - Update 2.0.0 - Update 2.1.1 - Added by Felix Schäfer at 2011-08-20 10:13 pm

Thanks for sharing your experience, I added a link to this forum thread on the Requirements page.

RE: Chiliproject 1.3.0 with Oracle Database - Update 1.4.0 - Update 2.0.0 - Update 2.1.1 - Update 2.2.0 - Added by Don Doffe at 2011-08-31 02:48 am

Rob,

I'm new to ruby and to rails. Yet I was hoping to install and run Chili as the collaboration server using corporate oracle DB as the back end.

I find your instruction to be invaluable - it is the only instruction available.

Could you please confirm a few things for me?

If I'm to install fresh 2.2.0 version, do I need to make all the changes mentioned in upgrade sections in addition to the ones mentioned at the top?
I.e. I would need to remove db/migrate/087_change_projects_description_to_text.rb (as mentioned in 1.4.0 upgrade section)?

In other words - can this doco be treated as THE instruction manual for 2.2.0?

Thank you.

RE: Chiliproject 1.3.0 with Oracle Database - Update 1.4.0 - Update 2.0.0 - Update 2.1.1 - Update 2.2.0 - Added by rob glazer at 2011-08-31 04:12 pm

I'm in the process of running a clean install using 2.2.0, I will post the documentation when complete.

Updated the documentation - hope this helps

(1-3/3)