DrupalでCiviCRMを使用しています。サイトを新しいCiviCRMメジャーバージョンにアップグレードする場合、新しいバージョンで導入されたすべてのデータベーススキーマの変更を知っておくと非常に便利です。これにより、データベースフィールドを参照するカスタムコードを修正できます。
適切なケースは、4.3-> 4.4のcivicrm_contribution_recur.next_sched_contribution-> next_sched_contribution_dateです。
「データベースフィールドに直接アクセスするべきではありません。 CiviCRM API を使用する必要があります。誰かが言うのを聞きます。多くの場合、これが推奨されるアプローチですが、API v3はデータベース構造に非常に密接に関連しており、API呼び出しによって返されるフィールドはデータベースフィールド名を反映しているため、コードを修正する必要があります。
CiviCRMにとって本当に役立つリソースは、Drupalの n.xモジュールを(n + 1).xに変換する ドキュメンテーションと同等です。
mysqldbcompare を使用して、変更を特定するための実行可能なアプローチを見つけました。 CiviCRM Wikiの開発者向けリソース->リファレンスシート-> データベースリファレンス にいくつかのページを追加しました。
データベーススキーマの変更:CiviCRM 4.4から4.5
データベーススキーマの変更:CiviCRM 4.5から4.6
CiviCRM Stack Exchange site が現在ベータ版であることに注意してください。この質問はそこに移動する必要がありますか?
これを行う1つの方法は、新しいバージョンのCRM/Upgrade /ディレクトリを調べて、スキーマの変更を探すことです。ただし、これらは、変更が導入されたアルファまたはベータバージョンに応じて、複数のファイルに分散されます。 next_sched_contribution_dateの変更がこのファイルに導入されました:
civicrm/CRM/Upgrade/Incremental/sql/4.4.alpha1.mysql.tpl
純粋な構造の観点からそれを行う簡単な方法は、次のようなmysqlスキーマ比較ツールを使用することです。
http://adamspiers.org/computing/mysqldiff/
ただし、すべての変更が反映されるわけではありませんが、ほとんどの変更が反映されると思います。自動化された方法でそれを行う方がずっといいです、IMO :)
別のオプションは、バージョン間でxmlスキーマを比較することです。 xmlスキーマファイルはtar.gzリリースでは出荷されず、gitでのみ出荷されるため、最もユーザーフレンドリーな方法とは言えませんが、出発点としては適しています。
あなたも試すことができます:
git log -w -p tag1..tag2 xml/schema
例えば:
git log -w -p 4.4.5..4.5.2 xml/schema
完璧ではありませんが、ある程度理解可能です。