タグ付けされた質問 「database」

Drupalは、データベースサーバーにアクセスするための、ベンダーに依存しない標準の抽象化レイヤーを提供します。

4
MySQLマスター/スレーブ構成を活用するコアを取得する方法は?
MySQLマスター/スレーブレプリケーションが機能しないという質問とその回答を読みました。 スレーブデータベースの使用は、Drupalコアではほとんど実装されていません。独自のモジュールを開発している場合、db_queryの呼び出しでは、$ options配列を使用してスレーブデータベースを使用することを指定する必要があります。この配列の設定方法については、DatabaseConnection :: defaultOptionsを参照してください。 子猫を殺さずにコアをハッキングして、スレーブSELECTクエリを取得db_query()およびdb_select()作成する方法はありますか? デフォルトでは、これらの関数は、スレーブにクエリするように特に指示されない限り、マスターにクエリを実行します(APIを参照)。db_query($query, $args, array('target' => 'slave'))これを達成するためにスレーブとコア(およびすべてのモジュール)をクエリするために記述する必要があります。 検索(スレーブ部分を参照)とアグリゲーターのみがこれを活用しているようです。 編集: 10月25日 プレスフロー7が出ているのを見ましたが、今それが大いに役立つかどうかわかりません。 何か関連するものが見つからなかったので、答えを得るのを助けるためにちょっとした賞金を試しましょう。 編集: 10月31日 主に、このトピックに関するCrellのコメントを心配しています:スレーブをどうするか?。 主SELECTに、スレーブにクエリを送信する場合、レプリケーションの遅延で何が起こるかnode_load()、新しいノードを保存した直後にやりたいことがあるという事実に問題があります。

2
EntityFieldQuery INNER JOIN
EntityFieldQueryオブジェクトを使用してクエリを実行したいと思います。nodeテーブルとnode_accessテーブルの両方の値が必要なので、INNER JOINを使用する必要があります。doドキュメントから、これがどのように可能かを理解できません。 これが私が持っているものです- $query = new EntityFieldQuery(); $result = $query->entityCondition('entity_type', 'node') ->entityCondition('bundle', 'node_access') ->propertyCondition('type', 'external_link') ->propertyCondition('status', 1) ->fieldCondition('gid', '3', '=') ->fieldCondition('realm', 'domain_id', '=') ->fieldCondition('grant_view', '1', '>=') ->range(0,1) ->execute();
21 7  database 

2
D7のdb_queryでLIKEを使用する
Drupal 6には次のようなクエリがあります。 $sql = 'SELECT sid, score FROM search_index WHERE word LIKE "%%%s%%"'; $result = db_query($sql,$search_term); そして、うまくいきましたが、今はDr​​upal 7にアップグレードしています。 私が読んで、これはうまくいくはずですが、そうではありません: $sql = 'SELECT sid, score FROM search_index WHERE word LIKE "%:term"'; $result = db_query($sql,array(':term'=>$search_term)); 誰かが私が間違っていることを知っていますか?
19 7  database 

1
結合してNULL値を探す
このサイトでの動作と同様に、フラグモジュールを使用して、ユーザーが質問に解決済みのマークを付けられるようにします。したがって、ユーザーに投稿をフィルター処理して、未解決の質問のみを表示できるようにします。また、一部の投稿はまったく質問にならない場合があります。したがって、「解決済み」フラグを使用することはできませんが、未解決の質問のみでフィルタリングする場合は結果に表示されません。したがって、ノードテーブルを他の2つと結合する必要があります。flag_contentそしてfield_data_field_question(この後者のテーブルは、投稿が質問かどうかを示すものです)。 私が試している現在のコードは次のとおりです。 $query->join('flag_content', 'f', 'f.content_id = n.nid AND f.content_type = "node" AND f.fid = 5'); $query->join('field_data_field_question', 'q', 'q.entity_id = n.nid AND q.field_question_value = 1'); $query->condition('f.fid', 'NULL', 'IS'); $query->condition('q.field_question_value', 'NULL', 'IS NOT'); ただし、これにより次のエラーが発生します。 PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the …
19 7  database 

4
カスタムテーブルのデータを使用してページャーでソート可能なテーブルを作成するにはどうすればよいですか?
Drupal 6の場合、次のようなことができます。 $header = array( array('data' => t('Order id'), 'field' => 'order_id'), ... array('data' => t('Transaction time'), 'field' => 'payment_time', 'sort' => 'desc'), ); $sql = "..."; $sql .= tablesort_sql($header); $limit = 25; $result = pager_query($sql, $limit); ... 私は見て、drupal 7とその両方pager_queryを探しましたが、tablesort_sql現在はなくなっています。代わりに、PagerDefaultクラスを使用して、DBTNGを使用してページャークエリを作成できるようです。Drupal 6で行われたように、ソート可能なテーブルをクエリにアタッチするためのシンプルなAPIの手がかりを見つけることができませんでした。 それでは、カスタムテーブルからデータを取得するページャーを使用して、ソート可能なテーブルをどのように作成しますか?
19 7  database 

1
データベースをテストして、一貫性がないかどうかを確認できますか?
Drupalは外部キーの概念を実際にサポートしていないことは誰もが知っています。データベースに、そしておそらく決して1。 また、モジュールが正しいことをしない可能性があること、またはユーザーが定期的に次のようなおかしなことをすることもわかっています。 DELETE FROM node_revision WHERE vid = 123 「データベースを整理する」ための努力。これが発生すると、フックは実行されず、データベースには孤立したデータがあります。ほとんどの場合、このデータは無害ですが、時には奇妙な動作を引き起こし、コードのバグを引き起こす可能性があります。 データベースに死んだデータや一貫性のないデータがあるかどうかを検出するための適切な方法はありますか? 1 Drupal 7スキーマAPI は、ドキュメント化のためにそれらをサポートしていますが、強制ではありません。
18 database  testing 

10
作成されたフィールドのマシン名を変更するにはどうすればよいですか
フィールド名を入力している間、スペースを空けましたが、マシン名は望んでいたものではありません。私はそれが単に迷惑であることを知っています。しかし、作成されたフィールドのマシン名を変更する方法があるかどうか疑問に思っています。 これが私の質問の第二の部分に私を導くと思います。フィールドを作成し、それが使用されなくなった場合、それを削除するにはどうすればよいですか、データベースからこれを行う必要がありますか、UIのどこかで行うことができますか?


5
すべてのノード/フィールドリビジョンを削除するにはどうすればよいですか?
私は、ノードとフィールドのリビジョンを保持するdrupal 7サイトを持っています。誤って新しい障害バージョンが保存され、元に戻したい場合に備えて、リビジョンを保持しています。 しかし、今度はデータベースをクリーンアップして最適化し、ハードディスクのスペースを節約したいと思います。 サイトのすべてのノード/フィールドについて、現在のリビジョンを除くすべてのリビジョンを削除する方法は何ですか?
17 7  database  nodes 

2
デッドロックとロックタイムアウトタイプの問題を取り除く方法は?
複数のブログを読んで、グーグルで検索しようとしましたが、解決策に満足していませんでした。次の問題があります。 PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction: DELETE FROM {cache_field} WHERE (cid LIKE :db_condition_placeholder_0 ESCAPE '\\') ; Array ( [:db_condition_placeholder_0] => field\_info:% ) in cache_clear_all() (line 163 of \includes\cache.inc). PDOException: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction: …

2
非公開ノードをプログラムで公開する方法
非公開のノードがいくつかあり、そのノードIDがあります。プログラムでそれらを公開するにはどうすればよいですか?次のようなクエリを使用してカスタムモジュールでそれを達成するのは正しいですか? db_query("UPDATE {node} SET status = 1 WHERE nid = %d", $nid)
16 7  database 


3
高速なdb_query、db_select、またはEntityFieldQuery
だから、db_query、db_select、またはEntityFieldQueryの方が速いかどうかを調べようとしています。現在、EntityFieldQueryを使用しています。約1600のノードエントリを取得しています。 これはシステムに負担をかける可能性があることを理解しているため、1600ノードを取得するのに最適なオプションを見つけたいだけです。私が構築しているアプリケーションでは、数秒または数ミリ秒の削り取りが重要になります。 回答ありがとうございます。
15 database 

1
ビューが常に、しかし断続的に、アドバンストフォーラムモジュールによって提供されるビューを見つけられない原因は何ですか?
Advanced Forumモジュールから頻繁に断続的にエラーが発生し、発生時に500エラーが発生します(WSOD)。本番環境では、1時間あたり約20回、1時間あたりのすべてのフォーラムページの読み込みの2〜3%で発生します。それは一貫して断続的に。ローカルでは、エラーを一貫して再現することはできませんが、実際には発生します。 エラーが発生しています sites / all / modules / contrib / advanced_forum / includes / core-overrides.inc`の232行目: 未定義のメソッドstdClass :: preview()の呼び出し 問題はadvanced_forum_get_topics()関数にあります: function advanced_forum_get_topics($tid, $sortby, $forum_per_page, $sort_form = TRUE) { $term = taxonomy_term_load($tid); drupal_add_feed('taxonomy/term/' . $tid . '/feed', 'RSS - ' . check_plain($term->name)); // Views handles this page $view = views_get_view('advanced_forum_topic_list'); $view->sort_form …
15 7  views  nodes  pantheon  database 

2
モジュールのインストール中にテーブルを作成する方法
Drupal 7用のモジュールを作成しようとしていますが、3つのテーブルを作成してデータを入力する必要があります。しかし、最初に作成する必要があります。 ファイルmymodule.installに私は持っています function mymodule_install() { } function mymodule_uninstall() { } function myodule_schema() { $schema['mymodule_table'] = array( 'description' => t('First table'), 'fields' => array( 'id' => array( 'description' => t('My unique identifier'), 'type' => 'int', 'unsigned' => true, 'not null' => true, ), 'list' => array( 'description' => t('list'), 'type' …
15 7  installing  database 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.