메뉴 닫기

2.2. OFBiz 준비

(1) Database 초기화 및 데모 데이터 로드 (derby 데이터베이스 이용)

  • MS 윈도우: gradlew cleanAll loadAll
  • 유닉스 계열: ./gradlew cleanAll loadAll

(2) Database 초기화 및 기본 데이터 로드 (데모데이터 없이 사용)

  • MS 윈도우: gradlew “ofbiz –load-data readers=seed,seed-initial” loadAdminUserLogin -PuserLoginId=admin
  • 유닉스 계열: ./gradlew “ofbiz –load-data readers=seed,seed-initial” loadAdminUserLogin -PuserLoginId=admin

“참고: (1) 또는 (2)번 중 1개만 선택하여 실행하십시오.”

(3) 기본 제공되는 Derby 데이터베이스를 사용함. (8)번으로 이동하여 실행

RDBMS (MySQL, PostgreSQL, MS SQL)를 사용하고자 하는 경우엔 Entity Definition을 변경하여 함. (4) ~ (7)번 과정 실행

오브비즈에서 제공하는 데이터베이스는 다음과 같습니다.

  • MySQL (Minimum 5.6.4)
  • PostgreSQL (Minimum 12)
  • Oracle
  • Sybase
  • MSSQL
  • IBM DB2

(4) PostgresSQL을 적용하기 위한 build.gradle 수정사항

  • ${ofbiz_home}/build.gradle 파일 수정
  • 마지막 implementation에서 다음 추가
  • implementation ‘org.postgresql:postgresql:42.5.1’

(5) PostgreSQL 적용을 위한 Entity Engine 파일 수정

  • ${ofbiz_home}/framework/entity/config/entityengine.xml 파일 수정
  • 54 ~ 71행
<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
        <group-map group-name="org.apache.ofbiz" datasource-name="localpostgres"/>
        <group-map group-name="org.apache.ofbiz.olap" datasource-name="localpostgresolap"/>
        <group-map group-name="org.apache.ofbiz.tenant" datasource-name="localpostgrestenant"/>
    </delegator>
    <!-- May be used when you create a service that manages many data for massive imports, this for performance reason or to escape functional cases --> 
    <delegator name="default-no-eca" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" entity-eca-enabled="false" distributed-cache-clear-enabled="false">
        <group-map group-name="org.apache.ofbiz" datasource-name="localpostgres"/>
        <group-map group-name="org.apache.ofbiz.olap" datasource-name="localpostgresolap"/>
        <group-map group-name="org.apache.ofbiz.tenant" datasource-name="localpostgrestenant"/>
    </delegator>

    <!-- Be sure that your default delegator (or the one you use) uses the same datasource for test. You must run "gradlew loadAll" before running "gradlew testIntegration" -->
    <delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
        <group-map group-name="org.apache.ofbiz" datasource-name="localpostgres"/>
        <group-map group-name="org.apache.ofbiz.olap" datasource-name="localpostgresolap"/>
        <group-map group-name="org.apache.ofbiz.tenant" datasource-name="localpostgrestenant"/>
    </delegator>
  • 468 ~ 580행
<datasource name="localpostgres"
            helper-class="org.apache.ofbiz.entity.datasource.GenericHelperDAO"
            schema-name="public"
            field-type-name="postgres"
            check-on-start="true"
            add-missing-on-start="true"
            use-fk-initially-deferred="false"
            alias-view-columns="false"
            join-style="ansi"
            use-binary-type-for-blob="true"
            use-order-by-nulls="true"
            offset-style="limit"
            result-fetch-size="50"> <!-- Comment out the result-fetch-size attribute for jdbc driver versions older than 8.0.
            Not recommended to use those though. They are archived unsupported versions: http://jdbc.postgresql.org/download.html -->
        
        <read-data reader-name="tenant"/>
        <read-data reader-name="seed"/>
        <read-data reader-name="seed-initial"/>
        <read-data reader-name="demo"/>
        <read-data reader-name="ext"/>
        <read-data reader-name="ext-test"/>
        <read-data reader-name="ext-demo"/>
        <inline-jdbc
                jdbc-driver="org.postgresql.Driver"
                jdbc-uri="jdbc:postgresql://127.0.0.1/ofbiz"
                jdbc-username="ofbiz"
                jdbc-password="your_password"
                isolation-level="ReadCommitted"
                pool-minsize="2"
                pool-maxsize="250"
                time-between-eviction-runs-millis="600000"/><!-- Be warned that at this date (2009-09-20) the max_connections parameters in postgresql.conf
                is set by default to 100 by the initdb process see http://www.postgresql.org/docs/8.4/static/runtime-config-connection.html#GUC-MAX-CONNECTIONS-->

        <!-- <jndi-jdbc jndi-server-name="default" jndi-name="java:comp/env/jdbc/localpostgres" isolation-level="ReadCommitted"/>-->
        <!-- <jndi-jdbc jndi-server-name="default" jndi-name="comp/env/jdbc/xa/localpostgres" isolation-level="ReadCommitted"/> --> <!-- Orion Style JNDI name -->
        <!-- <jndi-jdbc jndi-server-name="localweblogic" jndi-name="PostgresDataSource"/> --> <!-- Weblogic Style JNDI name -->
        <!-- <jndi-jdbc jndi-server-name="default" jndi-name="jdbc/localpostgres" isolation-level="ReadCommitted"/> --> <!-- JRun4 Style JNDI name -->
        <!-- <tyrex-dataSource dataSource-name="localpostgres" isolation-level="ReadCommitted"/> -->
    </datasource>
    <datasource name="localpostgresolap"
            helper-class="org.apache.ofbiz.entity.datasource.GenericHelperDAO"
            schema-name="public"
            field-type-name="postgres"
            check-on-start="true"
            add-missing-on-start="true"
            use-fk-initially-deferred="false"
            alias-view-columns="false"
            join-style="ansi"
            result-fetch-size="50"
            use-binary-type-for-blob="true"
            use-order-by-nulls="true"
            offset-style="limit">
        <read-data reader-name="tenant"/>
        <read-data reader-name="seed"/>
        <read-data reader-name="seed-initial"/>
        <read-data reader-name="demo"/>
        <read-data reader-name="ext"/>
        <read-data reader-name="ext-test"/>
        <read-data reader-name="ext-demo"/>
        <inline-jdbc
                jdbc-driver="org.postgresql.Driver"
                jdbc-uri="jdbc:postgresql://127.0.0.1/ofbizolap"
                jdbc-username="ofbiz"
                jdbc-password="your_password"
                isolation-level="ReadCommitted"
                pool-minsize="2"
                pool-maxsize="250"
                time-between-eviction-runs-millis="600000"/><!-- Be warned that at this date (2009-09-20) the max_connections parameters in postgresql.conf
                    is set by default to 100 by the initdb process see http://www.postgresql.org/docs/8.4/static/runtime-config-connection.html#GUC-MAX-CONNECTIONS-->
        
        <!-- <jndi-jdbc jndi-server-name="default" jndi-name="java:comp/env/jdbc/localpostgres" isolation-level="ReadCommitted"/>-->
        <!-- <jndi-jdbc jndi-server-name="default" jndi-name="comp/env/jdbc/xa/localpostgres" isolation-level="ReadCommitted"/> --> <!-- Orion Style JNDI name -->
        <!-- <jndi-jdbc jndi-server-name="localweblogic" jndi-name="PostgresDataSource"/> --> <!-- Weblogic Style JNDI name -->
        <!-- <jndi-jdbc jndi-server-name="default" jndi-name="jdbc/localpostgres" isolation-level="ReadCommitted"/> --> <!-- JRun4 Style JNDI name -->
        <!-- <tyrex-dataSource dataSource-name="localpostgres" isolation-level="ReadCommitted"/> -->
    </datasource>
    <datasource name="localpostgrestenant"
            helper-class="org.apache.ofbiz.entity.datasource.GenericHelperDAO"
            schema-name="public"
            field-type-name="postgres"
            check-on-start="true"
            add-missing-on-start="true"
            use-fk-initially-deferred="false"
            alias-view-columns="false"
            join-style="ansi"
            result-fetch-size="50"
            use-binary-type-for-blob="true"
            use-order-by-nulls="true"
            offset-style="limit">
        <read-data reader-name="tenant"/>
        <read-data reader-name="seed"/>
        <read-data reader-name="seed-initial"/>
        <read-data reader-name="demo"/>
        <read-data reader-name="ext"/>
        <read-data reader-name="ext-test"/>
        <read-data reader-name="ext-demo"/>
        <inline-jdbc
                jdbc-driver="org.postgresql.Driver"
                jdbc-uri="jdbc:postgresql://127.0.0.1/ofbiztenant"
                jdbc-username="ofbiz"
                jdbc-password="your_password"
                isolation-level="ReadCommitted"
                pool-minsize="2"
                pool-maxsize="250"
                time-between-eviction-runs-millis="600000"/><!-- Be warned that at this date (2009-09-20) the max_connections parameters in postgresql.conf
                    is set by default to 100 by the initdb process see http://www.postgresql.org/docs/8.4/static/runtime-config-connection.html#GUC-MAX-CONNECTIONS-->
        
        <!-- <jndi-jdbc jndi-server-name="default" jndi-name="java:comp/env/jdbc/localpostgres" isolation-level="ReadCommitted"/>-->
        <!-- <jndi-jdbc jndi-server-name="default" jndi-name="comp/env/jdbc/xa/localpostgres" isolation-level="ReadCommitted"/> --> <!-- Orion Style JNDI name -->
        <!-- <jndi-jdbc jndi-server-name="localweblogic" jndi-name="PostgresDataSource"/> --> <!-- Weblogic Style JNDI name -->
        <!-- <jndi-jdbc jndi-server-name="default" jndi-name="jdbc/localpostgres" isolation-level="ReadCommitted"/> --> <!-- JRun4 Style JNDI name -->
        <!-- <tyrex-dataSource dataSource-name="localpostgres" isolation-level="ReadCommitted"/> -->
    </datasource>

(6) PostgreSQL Database Server 설치

  • System에 PostgreSQL Server를 설치함
sudo apt update
sudo apt install postgresql postgresql-contrib

(7) PostgreSQL Database 생성

# psql 실행
sudo -u postgres psql

# ofbiz user 만들기
postgres=# CREATE USER ofbiz WITH ENCRYPTED PASSWORD 'user_password';

# ofbiz database 만들기
postgres=# CREATE DATABASE ofbiz;
postgres=# CREATE DATABASE ofbizolap;
postgres=# CREATE DATABASE ofbiztenant;

# 접근 권한 부여하기
postgres=# GRANT ALL PRIVILEGES ON DATABASE ofbiz TO ofbiz;
postgres=# GRANT ALL PRIVILEGES ON DATABASE ofbizolap TO ofbiz;
postgres=# GRANT ALL PRIVILEGES ON DATABASE ofbiztenant TO ofbiz;

(8) OFBiz 시작

  • MS 윈도우: gradlew ofbiz
  • 유닉스 계열: ./gradlew ofbiz

참고: OFBiz가 실행되는 한이 작업이 끝나지 않기 때문에 % 진행률 표시기를 무시하십시오.”

실행 후 로그인은 User ID: admin, Password: ofbiz