1

SQLite で問題ない可能性が高い Web プロジェクトを開始しています。その上に SQLObject がありますが、ここで長期的に考えると、このプロジェクトがより堅牢な (たとえば、大量のトラフィックを処理できる) 必要がある場合は、移行計画を用意する必要があります。私の質問:

  1. SQLObject の下で、ある DB (SQLite) から別の DB (MySQL、Firebird、または PostGre) に移行するのはどれくらい簡単ですか?
  2. SQLObject は、このような移行を容易にするツールを提供していますか? 定義したオブジェクトを取得して createTable を呼び出すだけですか?
  3. 代わりに複数の SQLite データベースを用意するのはどうですか? たとえば、訪問者グループごとに 1 つですか? SQLObject はこのシナリオを処理するためのメカニズムを提供していますか?もしそうなら、どのようなメカニズムを使用しますか?

ありがとう、ショーン

4

3 に答える 3

3

3) 非常に興味深い質問です。一般に、SQLite は Web ベースのものにはほとんど役に立ちません。サイズに関してはかなりうまくスケーリングしますが、並行性に関してはひどくスケーリングするため、同時にいくつかのリクエストでヒットすることを計画している場合は、問題が発生します.

質問のパート 3) でのあなたの考えは、複数の SQLite データベースを使用することです (たとえば、ユーザー グループごとに 1 つ、またはユーザーごとに 1 つ)。残念ながら、SQLite はこの分野では役に立ちません。しかし、それは可能です。以前にこれを行ったことがあると私が知っている 1 つのプロジェクトは、Divmod の Axiomです。だから私は確かにそれをチェックします。

もちろん、あなたが言及したような優れた並行DB(Firebird、PGなど)を使用する方がおそらくはるかに簡単でしょう。

完全を期すために:

1 と 2) 実際に多くのコードを書かなくても簡単です。この部門では SQLObject は少し制限的であることがわかり、代わりにSQLAlchemyを強くお勧めします。これははるかに柔軟性があり、今日新しいプロジェクトを開始する場合は、SQLObject よりも確実に使用します。「オブジェクト」をどこにも移動しません。ここには魔法はありません。データベース内のテーブルの行を転送します。前述のように手動で行うこともできますが、これにより時間を節約できます。

于 2008-11-09T11:53:37.943 に答える
2

createTable() の成功は、既存の基礎となるテーブル スキーマ/データ型に依存します。つまり、選択したデータベースに SQLite がどの程度適切にマッピングされ、SQLObject がデータ型の使用をどのように決定するかということです。

最も安全なオプションは、手動で新しいデータベースを作成することです。次に、データの移行に対処する必要があります。これは、同じテーブル定義で 2 つの SQLObject データベース接続をインスタンス化するのと同じくらい簡単です。

より完全な機能を備えたデータベースから始めてみませんか?

于 2008-11-09T06:20:43.107 に答える
0

質問を理解しているかどうかわかりません。

SQLObjectのドキュメントには、利用可能な 6 種類の接続がリストされています。さらに、データベース接続 (またはスキーム) は接続文字列で指定されます。データベース接続を SQLite から MySQL に変更するのは簡単です。接続文字列を変更するだけです。

ドキュメントには、サポートされているさまざまな種類のスキームがリストされています。

于 2008-11-09T04:06:02.223 に答える