4

RedBeanORMを使用しています。スキーマを作成するために、データを挿入する標準のredbeanアプローチを使用して、Redbeanが自分のニーズに合わせてスキーマを自動調整するようにしました。これを、データベースを初期化する必要があるときにスキーマを構築するために基本的に使用されるスクリプトに入れました。

問題は、RedBeanが各テーブル(スキーマを構築するためにredbeanを取得するために最初に挿入したテーブル)に1行または2行を保持することです。

通常のデータベースの場合、すべての行を消去するには、スキーマを削除して再構築しますが、この場合、最初の行がまだ存在するため、これは不可能です。

残念ながら、RedbeanのQ/Aはそれほど多くありません。Redbeanインターフェースを使用してこれを行う方法を知っている人はいますか?

私が試してみました

    $listOfTables = R::$writer->getTables();
foreach($listOfTables as $table)
{
    R::wipe($table);
}

もちろん、これは機能しません。(テーブルが正しい順序で切り捨てられないため、このキーを外部リンクとして使用している別のテーブルについてエラーが発生します。単にABCの順序で繰り返されます)

Fatal error: Uncaught [42000] - SQLSTATE[42000]: Syntax error or access violation: 1701 Cannot truncate a table referenced in a foreign key constraint (`redbeandb`.`research`, CONSTRAINT `research_ibfk_1` FOREIGN KEY (`ownEducationHistory_id`) REFERENCES `redbeandb`.`educationhistory` (`id`)) thrown in C:\Users\Rod\nginx-1.0.12\html\rb.php on line 105

誰かが(redbean api)ソリューションを持っているなら、それは大いにありがたいです。そしてうまくいけば、この質問は、ここStackoverflowでより多くのRedBean Q/Aを構築するのに役立つ可能性があります。

4

2 に答える 2

2

使用する

R::核();

はい、すべてのテーブルを削除しますが、RedBeanPHP はすべてのテーブルをオンザフライで作成するため、これは問題ではありません。

于 2012-03-21T10:08:25.837 に答える