719 lines
16 KiB
SQL
719 lines
16 KiB
SQL
-- PostgreSQL conversion from Gerrit 1 -> Gerrit 2
|
|
--
|
|
-- If this is the first time the Gerrit1 schema has been used it
|
|
-- needs to be renamed:
|
|
-- psql -c 'ALTER SCHEMA public RENAME TO gerrit1' $srcdb
|
|
--
|
|
-- Make sure there is a current dump file:
|
|
-- pg_dump -O -Fc $src >gerrit1.dump
|
|
--
|
|
-- Write your "UPDATE system_config SET ..." and put it into
|
|
-- some config.sql script. At least git_base_path must be set.
|
|
--
|
|
-- Execute the conversion script:
|
|
-- gerrit1_import/1-to-2.sh gerrit1.dump config.sql
|
|
--
|
|
|
|
DELETE FROM accounts;
|
|
INSERT INTO accounts
|
|
(account_id,
|
|
registered_on,
|
|
full_name,
|
|
preferred_email,
|
|
ssh_user_name,
|
|
contact_address,
|
|
contact_country,
|
|
contact_phone_nbr,
|
|
contact_fax_nbr,
|
|
default_context
|
|
) SELECT
|
|
nextval('account_id'),
|
|
a.created,
|
|
a.real_name,
|
|
a.user_email,
|
|
CASE WHEN a.user_email LIKE '%@%'
|
|
THEN lower(substring(a.user_email from '^(.*)@.*$'))
|
|
ELSE NULL
|
|
END,
|
|
a.mailing_address,
|
|
a.mailing_address_country,
|
|
a.phone_number,
|
|
a.fax_number,
|
|
a.default_context
|
|
FROM gerrit1.accounts a;
|
|
|
|
UPDATE system_config
|
|
SET allow_google_account_upgrade = 'Y';
|
|
|
|
DELETE FROM account_external_ids;
|
|
INSERT INTO account_external_ids
|
|
(account_id,
|
|
external_id,
|
|
email_address) SELECT
|
|
l.account_id,
|
|
'Google Account ' || a.user_email,
|
|
a.user_email
|
|
FROM gerrit1.accounts a, accounts l
|
|
WHERE l.preferred_email = a.user_email;
|
|
|
|
DELETE FROM contributor_agreements;
|
|
INSERT INTO contributor_agreements
|
|
(active,
|
|
require_contact_information,
|
|
auto_verify,
|
|
short_name,
|
|
short_description,
|
|
agreement_url,
|
|
id) VALUES (
|
|
'Y',
|
|
'Y',
|
|
'Y',
|
|
'Individual',
|
|
'If you are going to be contributing code on your own, this is the one you want. You can sign this one online.',
|
|
'static/cla_individual.html',
|
|
nextval('contributor_agreement_id'));
|
|
INSERT INTO contributor_agreements
|
|
(active,
|
|
require_contact_information,
|
|
auto_verify,
|
|
short_name,
|
|
short_description,
|
|
agreement_url,
|
|
id) VALUES (
|
|
'Y',
|
|
'N',
|
|
'N',
|
|
'Corporate',
|
|
'If you are going to be contributing code on behalf of your company, this is the one you want. We\'ll give you a form that will need to printed, signed and sent back via post, email or fax.',
|
|
'static/cla_corporate.html',
|
|
nextval('contributor_agreement_id'));
|
|
|
|
DELETE FROM account_agreements;
|
|
INSERT INTO account_agreements
|
|
(accepted_on,
|
|
status,
|
|
account_id,
|
|
review_comments,
|
|
reviewed_by,
|
|
reviewed_on,
|
|
cla_id) SELECT
|
|
a.individual_cla_timestamp,
|
|
CASE WHEN a.cla_verified = 'Y' THEN 'V'
|
|
ELSE 'n'
|
|
END,
|
|
r.account_id,
|
|
a.cla_comments,
|
|
(SELECT m.account_id FROM accounts m
|
|
WHERE m.preferred_email = a.cla_verified_by),
|
|
a.cla_verified_timestamp,
|
|
i.id
|
|
FROM contributor_agreements i,
|
|
gerrit1.accounts a,
|
|
accounts r
|
|
WHERE i.short_name = 'Individual'
|
|
AND a.individual_cla_version = 1
|
|
AND r.preferred_email = a.user_email;
|
|
INSERT INTO account_agreements
|
|
(accepted_on,
|
|
status,
|
|
account_id,
|
|
review_comments,
|
|
reviewed_by,
|
|
reviewed_on,
|
|
cla_id) SELECT
|
|
CASE WHEN a.individual_cla_timestamp IS NOT NULL
|
|
THEN a.individual_cla_timestamp
|
|
ELSE a.created
|
|
END,
|
|
'V',
|
|
r.account_id,
|
|
a.cla_comments,
|
|
(SELECT m.account_id FROM accounts m
|
|
WHERE m.preferred_email = a.cla_verified_by),
|
|
a.cla_verified_timestamp,
|
|
i.id
|
|
FROM contributor_agreements i,
|
|
gerrit1.accounts a,
|
|
accounts r
|
|
WHERE i.short_name = 'Corporate'
|
|
AND a.individual_cla_version = 0
|
|
AND a.cla_verified = 'Y'
|
|
AND r.preferred_email = a.user_email;
|
|
|
|
DELETE FROM account_groups;
|
|
INSERT INTO account_groups
|
|
(group_id,
|
|
description,
|
|
name) SELECT
|
|
nextval('account_group_id'),
|
|
g.comment,
|
|
g.name
|
|
FROM gerrit1.account_groups g;
|
|
|
|
INSERT INTO account_groups
|
|
(group_id,
|
|
description,
|
|
name) VALUES
|
|
(nextval('account_group_id'),
|
|
'Any user, signed-in or not',
|
|
'Anonymous Users');
|
|
|
|
INSERT INTO account_groups
|
|
(group_id,
|
|
description,
|
|
name) VALUES
|
|
(nextval('account_group_id'),
|
|
'Any signed-in user',
|
|
'Registered Users');
|
|
|
|
|
|
DELETE FROM account_group_members;
|
|
INSERT INTO account_group_members
|
|
(account_id,
|
|
group_id) SELECT
|
|
a.account_id,
|
|
g.group_id
|
|
FROM accounts a,
|
|
account_groups g,
|
|
gerrit1.account_group_users o
|
|
WHERE
|
|
o.group_name = g.name
|
|
AND a.preferred_email = o.email;
|
|
|
|
UPDATE system_config
|
|
SET
|
|
use_contributor_agreements = 'Y'
|
|
,admin_group_id = (SELECT group_id
|
|
FROM account_groups
|
|
WHERE name = 'admin')
|
|
,anonymous_group_id = (SELECT group_id
|
|
FROM account_groups
|
|
WHERE name = 'Anonymous Users')
|
|
,registered_group_id = (SELECT group_id
|
|
FROM account_groups
|
|
WHERE name = 'Registered Users');
|
|
|
|
UPDATE account_groups
|
|
SET owner_group_id = (SELECT admin_group_id FROM system_config);
|
|
|
|
DELETE FROM projects WHERE project_id <> 0;
|
|
INSERT INTO projects
|
|
(project_id,
|
|
description,
|
|
name,
|
|
use_contributor_agreements,
|
|
owner_group_id) SELECT
|
|
p.project_id,
|
|
p.comment,
|
|
p.name,
|
|
'Y',
|
|
(SELECT admin_group_id FROM system_config)
|
|
FROM gerrit1.projects p;
|
|
|
|
DELETE FROM account_project_watches;
|
|
INSERT INTO account_project_watches
|
|
(account_id,
|
|
project_id) SELECT
|
|
a.account_id,
|
|
p.project_id
|
|
FROM gerrit1.projects p,
|
|
accounts a,
|
|
gerrit1.account_unclaimed_changes_projects q
|
|
WHERE a.preferred_email = q.email
|
|
AND p.gae_key = q.project_key;
|
|
|
|
DELETE FROM branches;
|
|
INSERT INTO branches
|
|
(branch_id,
|
|
project_name,
|
|
branch_name) SELECT
|
|
nextval('branch_id'),
|
|
p.name,
|
|
b.name
|
|
FROM gerrit1.branches b, gerrit1.projects p
|
|
WHERE p.gae_key = b.project_key;
|
|
|
|
CREATE TEMPORARY TABLE need_groups (project_id INT NOT NULL);
|
|
INSERT INTO need_groups
|
|
SELECT p.project_id
|
|
FROM projects p, gerrit1.project_owner_groups o
|
|
WHERE p.project_id = o.project_id
|
|
GROUP BY p.project_id
|
|
HAVING COUNT(*) > 1;
|
|
INSERT INTO need_groups
|
|
SELECT p.project_id
|
|
FROM projects p
|
|
WHERE EXISTS (SELECT 1 FROM gerrit1.project_owner_users u
|
|
WHERE u.project_id = p.project_id)
|
|
AND NOT EXISTS (SELECT 1 FROM need_groups n
|
|
WHERE n.project_id = p.project_id);
|
|
|
|
INSERT INTO account_groups
|
|
(group_id,
|
|
owner_group_id,
|
|
description,
|
|
name) SELECT
|
|
nextval('account_group_id'),
|
|
(SELECT admin_group_id FROM system_config),
|
|
p.name || ' maintainers',
|
|
substring(p.name from '^.*/([^/]*)$') || '_' || p.project_id || '-owners'
|
|
FROM projects p, need_groups g
|
|
WHERE p.project_id = g.project_id;
|
|
|
|
UPDATE account_groups
|
|
SET owner_group_id = group_id
|
|
WHERE name IN (SELECT
|
|
substring(p.name from '^.*/([^/]*)$') || '_' || p.project_id || '-owners'
|
|
FROM projects p, need_groups g
|
|
WHERE p.project_id = g.project_id);
|
|
|
|
UPDATE projects
|
|
SET owner_group_id = (SELECT group_id
|
|
FROM account_groups
|
|
WHERE name = substring(projects.name
|
|
from '^.*/([^/]*)$') || '_' || projects.project_id || '-owners')
|
|
WHERE project_id IN (SELECT project_id FROM need_groups);
|
|
|
|
INSERT INTO account_group_members
|
|
(account_id,
|
|
group_id) SELECT DISTINCT
|
|
q.account_id,
|
|
p.owner_group_id
|
|
FROM projects p,
|
|
need_groups n,
|
|
gerrit1.account_groups og,
|
|
gerrit1.project_owner_groups o,
|
|
account_groups g,
|
|
account_group_members q
|
|
WHERE
|
|
n.project_id = p.project_id
|
|
AND o.project_id = p.project_id
|
|
AND og.gae_key = o.group_key
|
|
AND g.name = og.name
|
|
AND q.group_id = g.group_id
|
|
UNION
|
|
SELECT
|
|
a.account_id,
|
|
p.owner_group_id
|
|
FROM accounts a,
|
|
projects p,
|
|
need_groups n,
|
|
gerrit1.project_owner_users o
|
|
WHERE
|
|
n.project_id = p.project_id
|
|
AND o.project_id = p.project_id
|
|
AND a.preferred_email = o.email;
|
|
|
|
UPDATE projects
|
|
SET owner_group_id = (
|
|
SELECT g.group_id
|
|
FROM account_groups g,
|
|
gerrit1.project_owner_groups o,
|
|
gerrit1.account_groups og
|
|
WHERE projects.project_id = o.project_id
|
|
AND og.gae_key = o.group_key
|
|
AND g.name = og.name)
|
|
WHERE project_id NOT IN (SELECT project_id FROM need_groups)
|
|
AND EXISTS (
|
|
SELECT g.group_id
|
|
FROM account_groups g,
|
|
gerrit1.project_owner_groups o,
|
|
gerrit1.account_groups og
|
|
WHERE projects.project_id = o.project_id
|
|
AND og.gae_key = o.group_key
|
|
AND g.name = og.name);
|
|
|
|
DROP TABLE need_groups;
|
|
|
|
|
|
DELETE FROM changes;
|
|
INSERT INTO changes
|
|
(created_on,
|
|
last_updated_on,
|
|
owner_account_id,
|
|
dest_project_name,
|
|
dest_branch_name,
|
|
status,
|
|
open,
|
|
nbr_patch_sets,
|
|
current_patch_set_id,
|
|
subject,
|
|
change_id) SELECT
|
|
c.created,
|
|
c.modified,
|
|
a.account_id,
|
|
p.name,
|
|
b.name,
|
|
CASE WHEN c.merged = 'Y' THEN 'M'
|
|
WHEN c.closed = 'Y' THEN 'A'
|
|
ELSE 'n'
|
|
END,
|
|
CASE WHEN c.merged = 'Y' THEN 'N'
|
|
WHEN c.closed = 'Y' THEN 'N'
|
|
ELSE 'Y'
|
|
END,
|
|
c.n_patchsets,
|
|
c.n_patchsets,
|
|
c.subject,
|
|
c.change_id
|
|
FROM gerrit1.changes c,
|
|
accounts a,
|
|
gerrit1.projects p,
|
|
gerrit1.branches b
|
|
WHERE
|
|
a.preferred_email = c.owner
|
|
AND p.gae_key = c.dest_project_key
|
|
AND b.gae_key = c.dest_branch_key
|
|
;
|
|
|
|
UPDATE gerrit1.messages
|
|
SET sender = substring(sender from '<(.*)>')
|
|
WHERE sender LIKE '%<%>';
|
|
|
|
UPDATE gerrit1.messages
|
|
SET sender = NULL
|
|
WHERE sender = 'code-review@android.com';
|
|
|
|
UPDATE gerrit1.messages
|
|
SET body = 'Change has been successfully merged into the git repository.'
|
|
WHERE body LIKE '
|
|
Hi.
|
|
|
|
Your change has been successfully merged into the git repository.
|
|
|
|
-Your friendly git merger%'
|
|
AND sender IS NULL;
|
|
|
|
UPDATE gerrit1.messages
|
|
SET body = 'Change could not be merged because of a missing dependency. As soon as its dependencies are submitted, the change will be submitted.'
|
|
WHERE (body LIKE '
|
|
Hi.
|
|
|
|
Your change could not be merged because of a missing dependency.%
|
|
|
|
-Your friendly git merger%'
|
|
OR body LIKE '
|
|
Your change could not be merged because of a missing dependency.
|
|
|
|
As soon as all dependencies are submitted, your change will be
|
|
resubmitted automatically.%'
|
|
) AND sender IS NULL;
|
|
|
|
UPDATE gerrit1.messages
|
|
SET body = 'Change cannot be merged because of a path conflict.'
|
|
WHERE body LIKE '
|
|
Hi.
|
|
|
|
Your change has not been successfully merged into the git repository
|
|
because of a path conflict.
|
|
|
|
-Your friendly git merger%'
|
|
AND sender is NULL;
|
|
|
|
UPDATE gerrit1.messages
|
|
SET body = TRIM(both '
|
|
' FROM body);
|
|
|
|
DELETE FROM change_messages;
|
|
INSERT INTO change_messages
|
|
(change_id,
|
|
uuid,
|
|
author_id,
|
|
written_on,
|
|
message) SELECT
|
|
c.change_id,
|
|
substr(m.gae_key, length(m.change_key) + length('wLEgdNZXNzYWdlG')),
|
|
a.account_id,
|
|
m.date_sent,
|
|
m.body
|
|
FROM gerrit1.messages m
|
|
LEFT OUTER JOIN accounts a ON a.preferred_email = m.sender,
|
|
gerrit1.changes c
|
|
WHERE
|
|
c.gae_key = m.change_key;
|
|
|
|
DELETE FROM patch_sets;
|
|
INSERT INTO patch_sets
|
|
(revision,
|
|
change_id,
|
|
patch_set_id,
|
|
created_on,
|
|
uploader_account_id) SELECT
|
|
r.revision_id,
|
|
c.change_id,
|
|
p.patchset_id,
|
|
p.created,
|
|
a.account_id
|
|
FROM gerrit1.patch_sets p
|
|
JOIN accounts a ON a.preferred_email = p.owner
|
|
JOIN gerrit1.changes c ON p.change_key = c.gae_key
|
|
LEFT OUTER JOIN gerrit1.revisions r ON r.gae_key = p.revision_key;
|
|
|
|
DELETE FROM patch_set_info;
|
|
INSERT INTO patch_set_info
|
|
(subject,
|
|
message,
|
|
author_name,
|
|
author_email,
|
|
author_when,
|
|
author_tz,
|
|
committer_name,
|
|
committer_email,
|
|
committer_when,
|
|
committer_tz,
|
|
change_id,
|
|
patch_set_id) SELECT DISTINCT
|
|
(SELECT c.subject FROM changes c
|
|
WHERE c.change_id = p.change_id
|
|
AND c.current_patch_set_id = p.patch_set_id),
|
|
r.message,
|
|
r.author_name,
|
|
r.author_email,
|
|
r.author_when,
|
|
r.author_tz,
|
|
r.committer_name,
|
|
r.committer_email,
|
|
r.committer_when,
|
|
r.committer_tz,
|
|
p.change_id,
|
|
p.patch_set_id
|
|
FROM gerrit1.revisions r, patch_sets p
|
|
WHERE r.revision_id = p.revision;
|
|
|
|
DELETE FROM patch_set_ancestors;
|
|
INSERT INTO patch_set_ancestors
|
|
(ancestor_revision,
|
|
change_id,
|
|
patch_set_id,
|
|
position
|
|
) SELECT DISTINCT
|
|
p.parent_id,
|
|
ps.change_id,
|
|
ps.patch_set_id,
|
|
p.position
|
|
FROM gerrit1.revision_ancestors p,
|
|
patch_sets ps
|
|
WHERE ps.revision = p.child_id;
|
|
|
|
DELETE FROM patches;
|
|
INSERT INTO patches
|
|
(change_type,
|
|
patch_type,
|
|
nbr_comments,
|
|
change_id,
|
|
patch_set_id,
|
|
file_name) SELECT
|
|
p.status,
|
|
CASE WHEN p.multi_way_diff = 'Y' THEN 'N'
|
|
ELSE 'U'
|
|
END,
|
|
p.n_comments,
|
|
c.change_id,
|
|
ps.patchset_id,
|
|
p.filename
|
|
FROM gerrit1.patches p,
|
|
gerrit1.patch_sets ps,
|
|
gerrit1.changes c
|
|
WHERE p.patchset_key = ps.gae_key
|
|
AND ps.change_key = c.gae_key;
|
|
|
|
DELETE FROM patch_comments;
|
|
INSERT INTO patch_comments
|
|
(line_nbr,
|
|
author_id,
|
|
written_on,
|
|
status,
|
|
side,
|
|
message,
|
|
change_id,
|
|
patch_set_id,
|
|
file_name,
|
|
uuid) SELECT
|
|
c.lineno,
|
|
a.account_id,
|
|
c.written,
|
|
CASE WHEN c.draft = 'Y' THEN 'd'
|
|
ELSE 'P'
|
|
END,
|
|
CASE WHEN c.is_left = 'Y' THEN 0
|
|
ELSE 1
|
|
END,
|
|
c.body,
|
|
o_c.change_id,
|
|
o_ps.patchset_id,
|
|
o_p.filename,
|
|
c.message_id
|
|
FROM gerrit1.comments c,
|
|
accounts a,
|
|
gerrit1.patches o_p,
|
|
gerrit1.patch_sets o_ps,
|
|
gerrit1.changes o_c
|
|
WHERE o_p.patchset_key = o_ps.gae_key
|
|
AND o_ps.change_key = o_c.gae_key
|
|
AND o_p.gae_key = c.patch_key
|
|
AND a.preferred_email = c.author;
|
|
|
|
DELETE FROM change_approvals;
|
|
INSERT INTO change_approvals
|
|
(value,
|
|
change_id,
|
|
account_id,
|
|
category_id) SELECT
|
|
1,
|
|
c.change_id,
|
|
a.account_id,
|
|
'VRIF'
|
|
FROM gerrit1.review_status s,
|
|
gerrit1.changes c,
|
|
accounts a
|
|
WHERE
|
|
s.verified = 'Y'
|
|
AND s.change_key = c.gae_key
|
|
AND a.preferred_email = s.email;
|
|
INSERT INTO change_approvals
|
|
(value,
|
|
change_id,
|
|
account_id,
|
|
category_id) SELECT
|
|
CASE WHEN s.lgtm = 'lgtm' THEN 2
|
|
WHEN s.lgtm = 'yes' THEN 1
|
|
WHEN s.lgtm = 'abstain' THEN 0
|
|
WHEN s.lgtm = 'no' THEN -1
|
|
WHEN s.lgtm = 'reject' THEN -2
|
|
ELSE NULL
|
|
END,
|
|
c.change_id,
|
|
a.account_id,
|
|
'CRVW'
|
|
FROM gerrit1.review_status s,
|
|
gerrit1.changes c,
|
|
accounts a
|
|
WHERE
|
|
s.lgtm IS NOT NULL
|
|
AND s.change_key = c.gae_key
|
|
AND a.preferred_email = s.email;
|
|
|
|
DELETE FROM starred_changes;
|
|
INSERT INTO starred_changes
|
|
(account_id,
|
|
change_id) SELECT
|
|
a.account_id,
|
|
c.change_id
|
|
FROM gerrit1.account_stars s,
|
|
accounts a,
|
|
changes c
|
|
WHERE a.preferred_email = s.email
|
|
AND c.change_id = s.change_id;
|
|
|
|
UPDATE account_groups
|
|
SET name = 'Administrators'
|
|
WHERE name = 'admin';
|
|
|
|
|
|
-- Fix change.nbr_patch_sets
|
|
--
|
|
UPDATE changes
|
|
SET nbr_patch_sets = (SELECT MAX(p.patch_set_id)
|
|
FROM patch_sets p
|
|
WHERE p.change_id = changes.change_id);
|
|
|
|
-- Fix change.last_updated_on
|
|
--
|
|
CREATE TEMPORARY TABLE temp_dates (
|
|
change_id INT NOT NULL,
|
|
dt TIMESTAMP NOT NULL);
|
|
|
|
INSERT INTO temp_dates
|
|
SELECT change_id,written_on
|
|
FROM patch_comments
|
|
WHERE status = 'P';
|
|
|
|
INSERT INTO temp_dates
|
|
SELECT change_id,written_on FROM change_messages;
|
|
|
|
INSERT INTO temp_dates
|
|
SELECT change_id,merge_submitted
|
|
FROM gerrit1.changes
|
|
WHERE merge_submitted IS NOT NULL
|
|
AND merged = 'Y';
|
|
|
|
UPDATE changes
|
|
SET last_updated_on = (SELECT MAX(m.dt)
|
|
FROM temp_dates m
|
|
WHERE m.change_id = changes.change_id)
|
|
WHERE EXISTS (SELECT 1 FROM temp_dates m
|
|
WHERE m.change_id = changes.change_id);
|
|
DROP TABLE temp_dates;
|
|
|
|
|
|
-- Fix patches.nbr_comments
|
|
--
|
|
UPDATE patches
|
|
SET nbr_comments = (SELECT COUNT(*)
|
|
FROM patch_comments c
|
|
WHERE c.status = 'P'
|
|
AND c.change_id = patches.change_id
|
|
AND c.patch_set_id = patches.patch_set_id
|
|
AND c.file_name = patches.file_name);
|
|
|
|
SELECT
|
|
(SELECT COUNT(*) FROM gerrit1.accounts) as accounts_g1,
|
|
(SELECT COUNT(*) FROM accounts) as accounts_g1
|
|
WHERE
|
|
(SELECT COUNT(*) FROM gerrit1.accounts)
|
|
!=(SELECT COUNT(*) FROM accounts);
|
|
|
|
SELECT
|
|
(SELECT COUNT(*) FROM gerrit1.changes) as changes_g1,
|
|
(SELECT COUNT(*) FROM changes) as changes_g2
|
|
WHERE
|
|
(SELECT COUNT(*) FROM gerrit1.changes)
|
|
!=(SELECT COUNT(*) FROM changes);
|
|
|
|
SELECT
|
|
(SELECT COUNT(*) FROM gerrit1.messages) as messages_g1,
|
|
(SELECT COUNT(*) FROM change_messages) as messages_g2
|
|
WHERE
|
|
(SELECT COUNT(*) FROM gerrit1.messages)
|
|
!=(SELECT COUNT(*) FROM change_messages);
|
|
|
|
SELECT
|
|
(SELECT COUNT(*) FROM gerrit1.patch_sets) as patch_sets_g1,
|
|
(SELECT COUNT(*) FROM patch_sets) as patch_sets_g2
|
|
WHERE
|
|
(SELECT COUNT(*) FROM gerrit1.patch_sets)
|
|
!=(SELECT COUNT(*) FROM patch_sets);
|
|
|
|
SELECT
|
|
(SELECT COUNT(*) FROM gerrit1.patches g, gerrit1.patch_sets p
|
|
WHERE g.patchset_key = p.gae_key) as patches_g1,
|
|
(SELECT COUNT(*) FROM patches) as patches_g2
|
|
WHERE
|
|
(SELECT COUNT(*) FROM gerrit1.patches g, gerrit1.patch_sets p
|
|
WHERE g.patchset_key = p.gae_key)
|
|
!=(SELECT COUNT(*) FROM patches);
|
|
|
|
SELECT
|
|
(SELECT COUNT(*) FROM gerrit1.comments) as comments_g1,
|
|
(SELECT COUNT(*) FROM patch_comments) as comments_g2
|
|
WHERE
|
|
(SELECT COUNT(*) FROM gerrit1.comments)
|
|
!=(SELECT COUNT(*) FROM patch_comments);
|
|
|
|
-- Reset sequences
|
|
--
|
|
-- account_group_id (above)
|
|
-- account_id (above)
|
|
-- branch_id (above)
|
|
SELECT setval('change_id',(SELECT MAX(change_id) FROM changes));
|
|
-- contributor_agreement_id (above)
|
|
SELECT setval('project_id',(SELECT MAX(project_id) FROM projects));
|
|
|
|
-- Grant access to read tables needed for import
|
|
--
|
|
GRANT SELECT ON gerrit1.project_code_reviews TO gerrit2;
|
|
GRANT SELECT ON gerrit1.approval_right_groups TO gerrit2;
|
|
GRANT SELECT ON gerrit1.approval_right_users TO gerrit2;
|
|
GRANT SELECT ON gerrit1.approval_rights TO gerrit2;
|
|
GRANT SELECT ON gerrit1.account_groups TO gerrit2;
|