データベースの更新

データベースの更新 – 新たなスキーマによるデータベースの更新

データベースの更新

スキーマファイルに手を加えた際に MDB2_Schema でデータベースを更新するのは、とても簡単なことです。 現在のデータベーススキーマを取得するために getDefinitionFromDatabase() メソッドを用い、次に updateDatabase() で更新を行います。 しかし、実際に実行する前に getDefinitionFromDatabase() が期待通りの結果を返していることを確認することを忘れないでください。 詳細な情報は、それぞれ対応する章を参照ください。

<?php
require_once 'MDB2/Schema.php';

$options = array(
    
'log_line_break' => '<br>',
    
'idxname_format' => '%s',
    
'debug' => true,
    
'quote_identifier' => true,
    
'force_defaults' => false,
    
'portability' => false
);
$dsn 'mysql://root:@localhost/MDB2Example';

$schema =& MDB2_Schema::factory($dsn$options);

if (
PEAR::isError($schema)) {
    
$error $schema->getMessage();
} else {
    
// 最初はクエリを無効にして実行し、すべてがうまくいくようにします
    
$disable_query true;

    
$previous_schema $schema->getDefinitionFromDatabase();
    
$op $schema->updateDatabase('schema.xml'$previous_schema, array(), $disable_query);

    if (
PEAR::isError($op)) {
        
$error $op->getMessage();
    }
}

if (isset(
$error)) {
    
var_dump($error);
}

$schema->disconnect();
?>

このメソッドの最初のふたつのパラメータには、 ファイル名あるいは定義配列のどちらの形式でも指定することができます。 両方の形式を混ぜて使用する例を、上のコードで示しています。 何か問題が発生したときのために、現在のスキーマを dumpDatabase() でバックアップしておくといいでしょう。

データベーススキーマを更新する際には、 データの永続性に関する問題が出てきます。 これはデータを操作する際に影響を及ぼします。 この問題については、後日このマニュアルで説明します。

MDB2 XML からのデータベースの復元 (Previous) MDB2_TableBrowser (Next)
Last updated: Tue, 16 Sep 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.