はじめに
Couchbase Liteの利用に資するために、下記のドキュメントの内容(英語)を整理します。
初期化
APIを使用する最初のステップは、イニシャライザーを呼び出すことです。
初期化前に他のAPIメソッドが呼び出されると、例外が発生します。
例1.データベース初期化
// Initialize the Couchbase Lite system
CouchbaseLite.init();
データベース作成/オープン
Database
クラスを使用して、新しいデータベースを作成したり、既存のデータベースをオープンすることができます。
データベース名とオプションでDatabaseConfiguration
を渡します。
注意すべき点は次のとおりです。
- データベースのオープン/作成は非同期プロセスです
- 指定されたデータベースが指定された場所またはデフォルトの場所に存在しない場合は、新しいデータベースが作成されます
- データベースは、ディレクトリを指定しない限り、デフォルトの場所に作成されます(参照:
DatabaseConfiguration
およびDatabaseConfiguration.setDirectory()
)
ベストプラクティスは、データベースへのパスを常に明示的に指定することです。
「データベースファイルの検索」も参照してください。
例2.データベース作成/オープン
DatabaseConfiguration config = new DatabaseConfiguration();
config.setDirectory(context.getFilesDir().getAbsolutePath());
Database database = new Database(DB_NAME, config);
ここでは、データベースのディレクトリパスを指定しています。
データベースをクローズする
データベースを閉じるには、Database.close()
を使用します。
ただし、注意すべき点がいくつかあります。
- データベースを閉じることは同期操作であり、すぐに有効になります。
- 開いていないデータベースを閉じることはできません。
- データベースを開く(または作成する)ことは非同期であることに注意してください。したがって、オープン/作成を開始した直後にクローズを発行すると、そのプロセスが完了していない場合にエラーが発生する可能性があります。
データベースをクローズすると、アクティブなレプリケーション、リスナー、またはデータベースに接続されているライブクエリもすべてクローズされます。
レプリケーションを開始した直後にデータベースを閉じると、同期で例外が生成される可能性があります
(例:IllegalStateException: Attempt to perform an operation on a closed database
)。
オープンしているすべてのデータベースをクローズすることをアプリケーションワークフローに組み込むことをお勧めします。
例3.データベースを閉じる
database.close()
データベースの暗号化
データベースの暗号化はEnterprise Editionのみで利用できる機能です。
Java上のCouchbase Liteには、データベースを暗号化する機能が含まれています。これにより、モバイルアプリケーションは、データがデバイスに保存されているときに、保存されているデータを保護できます。データベースの暗号化に使用されるアルゴリズムは256ビットAESです。
暗号化を有効にするには、DatabaseConfiguration.encryptionKey
プロパティを選択した暗号化キーに設定する必要があります。データベースをオープンするたびに、この暗号化キーを指定します。
DatabaseConfiguration config = new DatabaseConfiguration();
config.setEncryptionKey(new EncryptionKey("PASSWORD"));
Database database = new Database(DB_NAME, config);
Couchbase Liteはキーを保持しません。キーを管理し、AppleのキーチェーンやAndroidのキーストアなどのプラットフォーム固有の安全なキーストアに保存するのはアプリケーションの責任です。
暗号化されたデータベースは、最初に暗号化に使用されたのと同じ言語SDK(Swift、C#、Java、Java(Android)、またはObjective-C)でのみ開くことができます。たとえば、データベースがSwift SDKで暗号化されてからエクスポートされた場合、データベースはSwift SDKでのみ読み取り可能になります。
データベースファイルの検索
デフォルトでは、JavaのCouchbase Liteデータベースは、カレントディレクトリの下の<databaseName>.cblite2
というディレクトリに作成されます 。
この場所は、DatabaseConfiguration
メソッドによって設定されます。データベースの場所を明示的に設定するには、常にこれを使用する必要があります。これを行う方法については、次の例を参照してください。
DatabaseConfiguration thisConfig = new DatabaseConfiguration();
thisConfig.setDirectory("yourDBpath");
Database thisDB = new Database("db", thisConfig);
コマンドラインツール
cblite
は、Couchbase Lite2.xデータベースを検査およびクエリするためのコマンドラインツールです。
couchbaselabsのGitHubリポジトリからダウンロードしてビルドできます。このcbliteツールは、Couchbaseサポートポリシーではサポートされていないことに注意してください。
トラブルシューティング
診断情報の最初のソースとして、Couchbaseのコンソールログを使用する必要があります。デフォルトのログレベルの情報が不十分な場合は、データベースエラーに焦点を当てて、より詳細なメッセージを生成できます。例4を参照してください。
ログの使用の詳細については、「ログの使用」を参照してください。
例4.データベースのログレベルを上げる
Database.log.getConsole().setDomain(LogDomain.DATABASE);