3

私は最近、 sonar.projectDate プロパティを使用して履歴を作成していました。しかし、日付を間違えて未来(2913-05-29)にしてしまいました。これで、プロジェクトに対して新しい分析を実行できなくなりました。これは最新の分析であるため、履歴ページに「スナップショットの削除」ボタンはありません。

そのため、分析の日付は有効で最新のものであるため、単純に変更することを考えました。「悪い」日付があったと思われる次の表に変更を加えました: スナップショット、イベント、問題。

update snapshots set 
  created_at = to_timestamp('05/29/2013', 'MM/dd/yyyy'),
  period2_date = to_timestamp('05/24/2013', 'MM/dd/yyyy'),
  period3_date = to_timestamp('04/29/2013', 'MM/dd/yyyy')
where id = ${snapshotId};

update snapshots set 
  created_at = to_timestamp('05/29/2013', 'MM/dd/yyyy')
where root_snapshot_id = ${snapshotId};

update events set 
  event_date = to_timestamp('05/29/2013', 'MM/dd/yyyy')
where snapshot_id = ${snapshotId};

厳密に言えば、スナップショットに関連付けられていないため、これを行う必要はないと思いますが、問題を整理するのに役立つと思いました.

update issues set 
  issue_creation_date = to_timestamp('05/29/2013', 'MM/dd/yyyy'),
  issue_update_date = to_timestamp('05/29/2013', 'MM/dd/yyyy'),
  created_at = to_timestamp('05/29/2013', 'MM/dd/yyyy'),
  updated_at = to_timestamp('05/29/2013', 'MM/dd/yyyy')
where root_component_id = ${projectId}
  and created_at > to_timestamp('01/01/2014', 'MM/dd/yyyy');

スナップショット テーブルを更新した後、GUI には正しい情報が読み込まれますが、新しい分析を開始できません。

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project rc-parent: 
Can not execute Sonar: 'sonar.projectDate' property cannot be older than the date of the last known quality snapshot on this project. Value: '2013-06-29'. Latest quality snapshot: '2913-05-29'. This property may only be used to rebuild the past in a chronological order. -> [Help 1]

私は現在 Sonar 3.6 を実行していますが、「悪い」分析の実行中は 3.4.1 を実行していました。

オプションを探しています。日付を変更するための適切なアプローチか、手動の分析削除手順のいずれかです。

4

2 に答える 2

2

MySQL DB の場合、次を実行します。

  1. プロジェクト ID を取得する

    select * from projects where name='foo';

  2. プロジェクトの現在のスナップショットを取得します。

    select * from events where resource_id = ${project_id};

  3. まず、build_date に有効な日時があるかどうかを確認します

    select * from snapshots where id=${snapshot_id};

    はいの場合 (イベントについても同様)、以下を実行します。

    update snapshots set created_at=build_date where id=${snapshot_id};

    update events set event_date=created_date where snapshot_id=${snapshot_id};

    そうでない場合は、次を実行します。

    update snapshots set created_at=CURDATE() where id=${snapshot_id};

    update events set event_date=CURDATE() where snapshot_id=${snapshot_id};

于 2014-12-05T10:55:09.780 に答える
1

snapshots最終的に、テーブルへの 2 つの sql 更新がうまくいきました。エレガントではありませんが、新しいソナー分析を開始し、すべてを適切に記録することができました.

于 2013-07-09T15:39:25.637 に答える