問題
- Liferayバンドルに接続するSybaseデータベースをセットアップする際に、何か特別な設定が必要でしょうか?
環境
- Sybase 15.7、16
- Liferay Portal 6.1, 6.2
- DXP 7.0、7.1
解像度
- 他のデータベースベンダーとは異なり、SybaseではLiferayに接続する前にいくつかのコマンドを実行し、データベースの設定デフォルトの一部を変更する必要があります。
- Sybaseがインストールされ、データベースが作成された後(この例のようなコマンドを使用する):
create database lportal on default=1400 with override go
の場合、Liferayをデータベースに接続する前に、以下のコマンドを実行することをお勧めします:
exec sp_dboption 'lportal', 'allow nulls by default', true go exec sp_dboption 'lportal', 'select into/bulkcopy/pllsort', true go - 最初のコマンドは、LiferayがNULLを許可することを期待しているいくつかのテーブルの "NOT NULL "のデフォルトを変更します。一方、2番目の "select into/bulkcopy/pllsort" コマンドは、ログに取引の完全記録を保持しない操作を実行することを可能にします。
追加情報
- これらの設定は、 LPS-41778 および LPS-52571にある環境設定に記載されています。
- 多くのデータベースベンダーは、カラムに明示的に定義されていない場合、デフォルトでNULL値を許可しています。 例えば、Liferayに接続されたMySQLデータベースは、デフォルトでResourcePermissionテーブルのownerIdカラムにNULL値を許可します(このMySQLドキュメント を参照)。 ただし、Sybaseデータベースで明示的に定義されていない場合、デフォルトはNOT NULLです(このSybaseのドキュメント を参照してください)。
- Sybaseおよびその他の一般的なデータベースに関する詳細な文書およびportal-ext.propertiesの提案は、 このヘルプセンター文書に記載されています。
Sybase 16 と Liferay 7.1 を接続する場合の portal-ext.properties の例:
jdbc.default.driverClassName=com.sybase.jdbc4.jdbc.SybDriver
jdbc.default.url=jdbc:sybase:Tds:localhost:5000/lportal
jdbc.default.username=sa
jdbc.default.password=myPassword
hibernate.dialect=com.liferay.portal.dao.orm.hibernate.SybaseASE157Dialect
custom.sql.function.isnull=CONVERT(VARCHAR,?) IS NULL
custom.sql.function.isnotnull=CONVERT(VARCHAR,?) IS NOT NULL