質問

今、私はデータベースで何かをテストしています。 WordPressデータベースです。私はそれについて他の操作を書き、削除し、行う必要があります。ご存知のように、それは常にすべての新しい投稿が可能な限り最高のIDを継承するようにするインデックス作成メカニズムを備えています。

このデータベースは使用済みのデータベースのコピーであると考えてください。以前に書かれています。 だから、私は自分のテストを終了したら、それは同じになることを確認する必要があります

今、私の唯一の解決策はバックアップを作ることです。そのため、計画テストの一部のセクションで終了した場合は、バックアップして、次のテストを開始します。

幸いなことに、データベースのサイズはわずかなものです。したがって、削除してコピーしてバックアップするのは簡単です。しかし、私はこのデータベーステストの方法が部分的な解決策にすぎないことを知っています。それは、あまりにも多くのバックアップコピーを作成することを強制します。データベースのサイズが大きい場合、何をするかわかりません。悪夢をテストするのは非常に長いでしょう。

だから、ロールバックのように機能する解決策はあるのだろうか。そのため、データベースをロックして、新しいエントリを何らかのキャッシュとして配置するだけです。 私はそれを消去するか、データベースに書き込むことができます。

MySQLとPHPMyAdminを使用し、それを使用していくつかのカスタムソリューションを開発しました。

編集::: PHPソリューションを開発する際にデータベースでテストを効果的に実行する方法は?

役に立ちましたか?

解決

ファイルシステムが書き込み可能なスナップショット(LVM、ZFS、Veritasなど)をサポートしている場合、データベースパーティション全体のインスタントコピーを撮影し、別の場所でマウントして、スナップショットを使用するMySQLの新しいインスタンスを開始することができます。スナップショットを削除します - すべてレプリカを邪魔することなく。

スナップショットには、テスト中に変更されるデータ量のストレージのみが必要であるため、少数のGBのみが必要になる場合があります。

他のヒント

レコードを削除した後、新しいレコードを挿入すると、IDを必要な番号に設定した場合、空白のままにするのではなく、そのインデックスを再度入力するだけです。

投稿番号は自動侵入フィールドですか?そうでない場合は、WordPress(一時的に)にハッキングし、新しい投稿が保存されているコードを探します。保存する前に、ID番号を投稿するためにEG 1000を定期的に追加してみませんか。テストが終了したら、定数よりも大きいID番号を削除するだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top