Backup Service
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

データベースダンプの作成

バックアップ を Liferay Cloudのバックアップ サービスにアップロードするには、ドキュメント ライブラリとデータベース ダンプをそれぞれ含む 2 つの圧縮ファイルで構成されたスナップショットが必要です。 ローカル Liferay インスタンスのデータベースからデータをアップロードするには、アップロードするダンプを作成できる必要があります。 これは、 Liferay Cloud への移行 および Liferay のアップグレードに必要です。

バックアップ サービスは、1 つのデータベース ( lcp-secret-database-name シークレットで設定されたデータベース、通常は lportal) のバックアップと復元のみをサポートします。 複数のデータベースの圧縮とアップロードはサポートされていません。

テーブルの正しい表記の実現

Liferay Cloud ではデータベース テーブル名と列名は大文字と小文字が区別され、データベースの種類 (PostgreSQL または MySQL) によって異なる規則に従う必要があります。 特定のオペレーティング システムまたはデータベース タイプ間の変換では、テーブル名の大文字化に関するエラーが発生する可能性があります。 例えば、MySQLはLinuxではデフォルトで大文字と小文字を区別しますが、WindowsやMacOSでは区別しません(Liferayではすべて小文字の名前でテーブルが生成されることがあります)。

データベース ダンプを作成する前に、データベースのテーブルに適切な大文字/小文字が使用されていることを確認してください。 データベースのテーブルに正しい大文字/小文字のパターンがない場合は、手動またはスクリプトを使用して正しい形式に変換する必要があります。 また、テーブル名を参照する独自のコードには、更新された大文字と小文字を反映していることを確認する必要があります。 テーブル名の調整についてサポートが必要な場合は、 サポート チケットを送信してください

PostgreSQLの大文字化(小文字)

PostgreSQL の場合、エラーを回避するためにテーブル名は 小文字 にする必要があります。 テーブル名が大文字で作成されている場合(例: PascalCase)、Liferay Cloud では認識されません。 pgloaderなどのツールを使用してデータベースを PostgreSQL に変換した場合、名前はデフォルトで小文字に変換されます。

たとえば、次の Pascal ケース テーブル名を変換します。

  • アカウントエントリアカウントエントリ

  • CP定義CP定義

  • ゴミ箱エントリゴミ箱エントリ

PostgreSQL の ALTER TABLE コマンドを使用して、テーブルの名前を変更できます。

MySQL の大文字化 (Pascal の場合)

MySQL の場合、テーブル名は パスカルケースにする必要があります。 テーブル名が小文字で作成されている場合、Liferay Cloudでは認識できません。

例えば、これらの小文字のテーブル名を変換します。

  • アカウントエントリアカウントエントリ

  • CP定義CP定義

  • ゴミ箱エントリゴミ箱エントリ

MySQL でテーブルの名前を変更するには、 RENAME TABLE コマンドを使用できます。

PostgreSQL データベースダンプの作成と圧縮

PostgreSQL のデータベース ダンプを作成および圧縮するためのコマンドは、オペレーティング システムによって異なります。 ここで示すコマンドは、データベース ダンプを database.gz ファイルに圧縮します。これは、Liferay PaaS へのデータベースのアップロードに必要な形式です。

Windows (OS) を使用している場合は、圧縮ファイルを圧縮/解凍するコマンドを実行するために、ファイル圧縮ソフトウェアをインストールする必要があります。 これを行うには、 7-zip または同様のファイル圧縮ソフトウェアをインストールします。

Linux/MacOSの場合:

ダンプを実行して圧縮するには、次のコマンドを実行します (変数値を自分のユーザー名、ホスト、データベース名に置き換えます)。

USERNAME=dxpcloud
HOST=localhost
DATABASE=lportal

pg_dump -U ${USERNAME} --format=plain --no-owner --no-acl -h ${HOST} -d ${DATABASE} | gzip > database.gz

Windowsの場合:

ダンプを実行して圧縮するには、次のコマンドを実行します (変数値を自分のユーザー名、ホスト、データベース名に置き換えます)。

SET USERNAME=dxpcloud
SET HOST=localhost
SET DATABASE=lportal

pg_dump -U %USERNAME% --format=plain --no-owner --no-acl -h %HOST% -d %DATABASE% -f database.sql

7za a -tgzip database.gz database.sql

バックアップ サービスからデータベース ダンプをダウンロードして、バックアップ サービスが PostgreSQL ダンプ ファイルを作成する方法を確認することもできます。

結果のダンプ ファイルには、データベースを削除または作成するステートメントが含まれていてはなりません。 次に例を示します。

--
-- PostgreSQL database dump
--

-- Dumped from database version 15.5
-- Dumped by pg_dump version 15.5

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

SET default_tablespace = '';

SET default_table_access_method = heap;

--
-- Name: accountentry; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.accountentry (

MySQL データベースダンプの作成と圧縮

ここで示す手順では、MySQL データベースのダンプを database.gz ファイルに圧縮します。これは、Liferay PaaS へのデータベースのアップロードに必要な形式です。

Windows を使用している場合、これらの手順では、データベース ダンプを圧縮するために 7-Zip がインストールされていることを前提としています。 MySQL データベースに直接アクセスできる必要があります。

  1. データベースのダンプを実行し、それを .gz アーカイブに圧縮します。

    LinuxおよびMacOSの場合:

    mysqldump -uroot -ppassword --databases --add-drop-database lportal | gzip -c | cat > database.gz
    

    Windowsの場合:

    mysqldump -u##### -p##### --databases --add-drop-database lportal > database.sql
    
    7za a -tgzip database.gz database.sql
    

    バックアップの復元を正しく行うには、 --databases フラグと --add-drop-database フラグが必要です。 また、 /backup/download APIを使用して、バックアップサービスがどのようにMySQLのダンプファイルを作成するかを確認することができます。

結果のデータベース ダンプには、 create table ステートメントの前に次のコードが含まれます。

--
-- Current Database: `lportal`
--

/*!40000 DROP DATABASE IF EXISTS `lportal`*/;

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `lportal` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `lportal`;