···25012501 return err
25022502 })
2503250325042504+ orm.RunMigration(conn, logger, "ref-based-pr", func(tx *sql.Tx) error {
25052505+ _, err := tx.Exec(`
25062506+ ALTER TABLE pulls ADD COLUMN cid TEXT NOT NULL DEFAULT '';
25072507+25082508+ -- TODO(boltless): set source_repo_did to ''
25092509+25102510+ CREATE TABLE pull_versions (
25112511+ pull_at TEXT NOT NULL,
25122512+ id INTEGER NOT NULL, -- PR local version id
25132513+ head TEXT NOT NULL, -- head commit ID
25142514+ base TEXT NOT NULL, -- base commit ID (used on interdiff)
25152515+ created TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
25162516+ legacy INTEGER NOT NULL DEFAULT 0, --
25172517+25182518+ UNIQUE(pull_at, id),
25192519+ FOREIGN KEY (pull_at) REFERENCES pulls(at_uri) ON DELETE CASCADE
25202520+ );
25212521+25222522+ -- set source_repo_did to repo_did for all branch based PRs
25232523+ UPDATE pulls
25242524+ SET source_repo_did = repo_did
25252525+ WHERE coalesce(source_branch, '') <> '';
25262526+25272527+ INSERT INTO pull_versions (
25282528+ pull_at,
25292529+ id,
25302530+ head,
25312531+ base,
25322532+ created
25332533+ )
25342534+ SELECT
25352535+ pull_at,
25362536+ round_number,
25372537+ coalesce(source_rev, ''),
25382538+ '',
25392539+ created
25402540+ FROM pull_submissions;
25412541+ -- we keep 'pull_submissions' table just in case.
25422542+ `)
25432543+ return err
25442544+ })
25452545+25042546 return &DB{
25052547 db,
25062548 logger,